八大排序之快排

2021-07-11 16:43:42 字數 673 閱讀 8750

public class quicksort ; 

sort(a,0,5);

for (int i = 0; i < a.length; i++)

} public static void sort(int a, int left, int right)

int i = left;

int j = right;

int key = a[left];

while(i= a[i])

/*這是i在當組內向前尋找,同上,不過注意與key的大小關係停止迴圈和上面相反,

因為排序思想是把數往兩邊扔,所以左右兩邊的數大小與key的關係相反*/

a[j] = a[i];

}a[i] = key;/*當在當組內找完一遍以後就把中間數key回歸*/

sort(a, left, i - 1);/*最後用同樣的方式對分出來的左邊的小組進行同上的做法*/

sort(a, i + 1, right);/*用同樣的方式對分出來的右邊的小組進行同上的做法*/

/*當然最後可能會出現很多分左右,直到每一組的i = j 為止*/ }

}

測試結果:

八大排序之堆排序

public class heapsort heapsort num,num.length for int i 0 i 0 i heapadjust array,i,length 從最後乙個元素開始對序列進行調整,不斷的縮小調整的範圍直到第乙個元素 for i length 1 i 0 i priv...

八大排序之堆排序

public static void heapsort int arr for int i 0 i arr.length i int size arr.length 堆中用size表示長度 swap arr,0,size while size 0 用 3 0 1 5 2 畫圖,過程清晰。陣列最後插入...

八大排序之選擇排序

個人部落格 建議先看排序綜述,傳送門 資料結構與演算法系列之一 八大排序綜述。選擇排序 selection sort 是一種簡單直觀的排序演算法。它的工作原理如下。首先在未排序序列中找到最小 大 元素,存放到排序序列的起始位置,然後,再從剩餘未排序元素中繼續尋找最小 大 元素,然後放到已排序序列的末...