JAvaでのソート----クイックソート

770 ワード

JAvaでのソート---クイックソートの考え方:各数を後のn数と比較する.2つのforループが存在する
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);

	}