まず、移動マップ・プレゼンテーション
分析の第二に、アイデア
nの二つの数字、N [i]は、隣接する1対毎[J + 1]比、nはなら[I]> N [J + 1]、次に偶数を交換し、
2. Jの++は、上記の手順を繰り返し、最初の旅行の終了後、最大数は、また、底部にバブルソート大(小)数シンクとして知られている最後に決定されます
3. iはi = N-1が終了するまで、上記の手順を繰り返し、++、ソートが完了しました。
第三に、負のヘテロ解析
1.関係なく元の配列秩序と時間複雑度はO(N 2)であるかどうかの、
2N-1 + N 2、及び低一定の電力を取り除く、残りN2、最終的な時間計算量がN2である:誰もが、他の数の数を比較していない(N-1)2回、分解する必要があるため
2.空間の複雑さのみ定義補助変数ので、関係なく、nの大きさの、空間的複雑さはOであり、O(1)(1)
第四に、比較およびソートバブルソートを選択
1.時間がO(N2)の度合いに責任があります
2.空間の複雑さはO(1)であります
第1の最大または最小数の開始から決定されたソートを選択し、フロントの数はバックの秩序及び比較的小さいまたは大きい数であることを保証するために
バブルソートは、後者の数を注文し、前の数よりも大きいか小さいされていることを確認し、最後の開始から最大値または最小数を決定することです。
輸入java.util.Arrays。
パブリッククラス冒泡{
パブリック静的無効メイン(文字列[] args){
INT [] N =新しいINT [] {1,6,3,8,33,27,66,9,7,88}。
int型の温度;
以下のために(INT i = 0; I <n.length-1; iは++){
ための(int型J = 0; J <n.length-1; J ++){
IF(N [J]> N [J + 1]) {
TEMP = N [J]。
N [J] = N [J + 1]。
N [J + 1] = TEMP。
}
}
}
のSystem.out.println(Arrays.toString(N))。
}
}