1. 知識 - 時間の複雑さと空間の複雑さ
1.2 時間計算量
アルゴリズムにかかる時間は、そのステートメントの実行回数に比例し、アルゴリズム内の基本演算の実行回数がアルゴリズムの時間計算量となります。
1.3 空間の複雑さ
スペース複雑度は、プログラムが占めるスペースのバイト数ではなく、変数の数です。
1.3 Big O の漸近記法
- Big O 記法: 関数の漸近的な動作を記述するために使用される数学的記法です。Big O メソッドを導き出す:
- 1. 実行時のすべての加算定数を定数 1 に置き換えます。
- 2. 修正された実行時間関数では、最上位の項のみが保持されます。
- 3. 最上位の項が存在し、1 でない場合は、この項に乗じた定数を削除します。結果はビッグオーオーダー。
2. ソートアルゴリズム
ブログの古典的な並べ替えアルゴリズムのトップ 10 を推奨する (アニメーション画像のデモンストレーション) - One Pixel - Blog Garden (cnblogs.com)
遭遇した再帰に関連した知識については、再帰を素早く理解する方法についてこのブログを読むことができます。これを読んでください_再帰関数の再帰本体_このコードを実行するためにラオチに来たブログ - CSDN ブログ
再帰の主なことは、その境界条件を見つけてから、再帰本体を調べて各再帰が何をしているのかを理解することです。
ソートで頻繁に使用される関数は 2 つあり、1 つは Push() で、もう 1 つはshift() です。
Push() メソッドは、1 つ以上の要素を配列の末尾に追加し、配列の新しい長さを返します。配列の新しい変更バージョンを生成するのではなく、元の配列を変更して置き換えます。
SHIFT() は、配列から最初の要素を削除し、その要素の値を返します。このメソッドは配列の長さを変更します。