JAvaでのソート----クイックソート
770 ワード
JAvaでのソート---クイックソートの考え方:各数を後のn数と比較する.2つのforループが存在する
1つ目:配列内の各数(最後の数を除く)を巡回します.
2つ目:最初のループがループした数の後にあるすべての要素をループします.
eg:携帯電話のソート
高速ソートの最適化:すなわち、ifの判断が2回目に有効である(いずれも交換される)と、プログラムのレートが大幅に低下するため、高速ソート、すなわちバックアップに比較が必要な数を最適化し、下付きを保持し、最後に1回の交換だけでよい.
1つ目:配列内の各数(最後の数を除く)を巡回します.
2つ目:最初のループがループした数の後にあるすべての要素をループします.
eg:携帯電話のソート
public void selectSort1(int a[]) {
for (int i = 0; i < a.length - 1; i++) {
for (int j = i + 1; j < a.length; j++) {
if (a[i] > a[j]) {
swap(a, i, j);
}
}
}
print(a);
}
高速ソートの最適化:すなわち、ifの判断が2回目に有効である(いずれも交換される)と、プログラムのレートが大幅に低下するため、高速ソート、すなわちバックアップに比較が必要な数を最適化し、下付きを保持し、最後に1回の交換だけでよい.
public void selectSort2(int a[]) {
for (int i = 0; i < a.length - 1; i++) {
int k = i;
for (int j = i + 1; j < a.length; j++) {
if (a[k] > a[j]) {
k = j;
}
}
if (i != k)//
swap(a, i, k);
}
print(a);
}