int i = 1;
i++;
Ein solches Inkrement wird als nachträgliches Inkrement </ b> bezeichnet. Bei Verwendung der for-Anweisung
for(int i = 0;i < 10000;i++){
}
int i = 1;
++i
Ein solches Inkrement wird als Vorinkrement </ b> bezeichnet.
Bei Verwendung der for-Anweisung
for(int i = 0;i < 10000;++i){
}
Wenn es sich um Nachinkrement </ b> handelt, wird eine Instanz intern erstellt, sodass die Verarbeitung anscheinend einige Zeit in Anspruch nimmt. Aufgrund der Entwicklung des Compilers sind die meisten derzeit jedoch nicht verfügbar. </ Font>
int num = 100;
int twice = num * 2;
int num = 100;
int twice = num << 1;
"Bitarithmetik Es wird allgemein gesagt, dass "es schneller ist", aber ich denke, dass es viele Fälle gibt, in denen es schwierig ist zu wissen, wann tatsächlich Bitarithmetik verwendet werden soll. Ist der Fall, der in einem solchen Fall am einfachsten zu verwenden ist, nicht doppelt so hoch wie oben? Auf den ersten Blick ist es jedoch häufig ??? (es verringert die Lesbarkeit), daher ist es möglicherweise besser, die Verwendung in Betracht zu ziehen.
`num >> 1```, half, 1/2) ist eine vorzeichenbehaftete Berechnung (negativer Wert),`
num / 2 und `` `num >> Das Ausführungsergebnis kann sich mit 1
ändern.List<int> numList = new List<int>();
for(int i = 0;i < 10000;++i){
numList.Add(i);
}
if(numList.Contain(9999)){
}
HashSet<int> numList = new HashSet<int>();
for(int i = 0;i < 10000;++i){
numList.Add(i);
}
if(numList.Contain(9999)){
}
Wenn Sie ein Array mit variabler Länge wie C # oder Java verwenden, das List (Vektor in C ++) entspricht, und wenn Sie einen Prozess schreiben, um festzustellen, ob ein Wert im Array vorhanden ist, wird der Prozess ausgeführt, der dem folgenden Prozess entspricht. Ich werde.
public bool Contain(int value){
for(int i = 0;i < this.Count;i++){
if(this[i] == value){
return true;
}
}
return false;
}
Wenn diese Liste beispielsweise 10000 Daten enthält, werden diese bis zu 10000 Mal überprüft. (Eine solche Verarbeitung wird als [lineare Suche] bezeichnet (https://ja.wikipedia.org/wiki/%E7%B7%9A%E5%9E%8B%E6%8E%A2%E7%B4%A2). Masu) Wenn Sie HashSet oder Dictionary (HashMap usw. in Java) verwenden, können Sie den entsprechenden Wert in einem Prozess erhalten. Daher ist die Geschwindigkeit schneller, da die Beurteilung nur einmal erfolgt. (Diese Art der Verarbeitung wird als [Hash-Suche] bezeichnet (https://programming-place.net/ProgrammingPlacePlus/algorithm/search/006.html). Weitere Informationen finden Sie unter Referenzen.
last
SELECT id FROM Tabellenname ORDER BY DESC LIMIT 1;
Bei Verwendung der häufig verwendeten Schienen
ActiveRecord.last.id
SELECT (information_schema.tables.AUTO_INCREMENT - 1) FROM information_schema.tables WHERE information_schema.tables.TABLE_NAME = 'Tabellenname';
Das Ausgeben einer `ORDER BY``` -Anweisung in SQL verlangsamt den Prozess, wenn die Anzahl der Fälle zunimmt, selbst wenn es sich um`
LIMIT 1``` handelt. (Grundsätzlich ist der Sortiervorgang schwer)
Standardmäßig verfügt MySQL über eine Tabelle, die Metainformationen wie verschiedene Definitionswerte in MySQL aufzeichnet, z. B. Tabelleninformationen mit dem Namen INFORMATION_SCHEMA. Es kann nur aus dieser INFORMATION_SCHEMA-Tabelle gelesen werden, und der Wert kann mithilfe der SELECT-Anweisung abgerufen werden. Die Informationen der Tabelle von INFORMATION_SCHEMA zeichnen auch die Informationen der Anzahl der Fälle (TABLE_ROWS) und die Informationen am Ende (AUTO_INCREMENT) der Tabelle auf. Daher kann es mit hoher Geschwindigkeit ausgeführt werden, indem Informationen aus dieser Tabelle erfasst werden.
Wenn es andere Fälle gibt, in denen die Geschwindigkeit durch einfaches Ändern des Schreibstils verbessert werden kann, möchte ich sie hinzufügen.