package demo;
public class demo2 ;
quicksort(arr,0,arr.length-1);
for (int i = 0; i < arr.length; i++)
} private static void quicksort(int arr, int begin, int end)
int i,j,pivot;
i = begin+1;
//有的演算法寫i=begin,也可以,但要注意while迴圈中pivot>=arr[i]等號不能少,其餘並無差異。
j = end;
pivot = arr[begin];
while(true)
while(arr[j]>=pivot && j>begin)
if(i} swap(arr,begin,j);
//最終結果要麼ij指向同乙個數,要麼i指向乙個大於pivot的數,j指向乙個小於pivot的數,且i在j右邊並緊挨著j,綜合兩種情況j換pivot即可。
//若是true變為iquicksort(arr,begin,j-1);//遞迴左邊的子陣列
quicksort(arr,j+1,end);//遞迴右邊的子陣列
} static void swap(int arr,int i,int j)
}
排序總結 快速排序
思想 從陣列中選取乙個數作為基準值,按照從大到小排序小於基準值的放在基準值的左邊,大於基準值的在基準值的右邊 核心partition過程 選取陣列第乙個元素作為基準值,小於區 left 1,j 1 大於等於區 j,i 1 讓變數i從left 1位置開始遍歷陣列,j變數位置是小於區間的而最後乙個數,若...
快速排序總結
快速排序,從字面意思就可以看出這是一種效率比較高的排序演算法,現在對該演算法做一下總結 快速排序是由氣泡排序改進而得的,它的基本思想是 在待排序的n個記錄中任取乙個記錄 通常取第乙個記錄 把該記錄放入適當位置後,資料序列被此記錄劃分成兩部分。所有關鍵字比該記錄關鍵字小的記錄放置在前一部分,所有比它大...
排序演算法總結(快速排序)
終於不用改 了,希望文章大修順利!穩定的演算法 不穩定的演算法 內部排序 排序過程不涉及內 外存交換 外部排序 排序過程有內 外存交換 in place sort 不占用額外記憶體或占用常數的記憶體 插入排序 選擇排序 氣泡排序 堆排序 快速排序。out place sort 歸併排序 計數排序 基...