排序算法

	// 快速排序,原理:通過選定一個key,i=0;j=n-1;第一次排序時,將i的值list[i]從前往後找比key小的值,將j的值list[j]從後往前找比key大的值
	// 找到則與key調換位置,直到i與j相等;此時:key左邊的值都比其小;key右邊的值都比其大;
	public static void QuickSort(int[] list, int start, int end) {
		int i = start;
		int j = end;
		int tmp;
		if ((list == null) || (list.length == 0)) {
			return;
		}
		while (i < j) {
			while ((i < j) && list[i] <= list[j]) {
				j--;
			}
			if (i < j) {
				tmp = list[i];
				list[i] = list[j];
				list[j] = tmp;
			}
			while (i < j && list[i] < list[j]) {
				i++;
			}
			if (i < j) {
				tmp = list[i];
				list[i] = list[j];
				list[j] = tmp;
			}
		}
		if (start < end) {
			QuickSort(list, start, i - 1);
			QuickSort(list, i + 1, end);
		}
	}

發佈了133 篇原創文章 · 獲贊 17 · 訪問量 116萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章