快速排序例項

2021-08-17 04:47:01 字數 604 閱讀 7971

void sort(int * a,int left,int right)

int i = left;

int j = right;

int key = a [left];

while(i

a [i] = a [j];

/ *找到乙個這樣的數後就把它賦給前面的被拿走的我的值(如果第一次迴圈且鍵是

乙個[左],那麼就是給金鑰)* /

while(i = a [i])

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

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

a [j] = a [i];

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

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

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

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

}

快速排序例項

include stdafx.h include define cutoff 3 int array void insert sort int array,int size array j temp print array array,size void print array int array,...

快速排序例項

快速排序是根據待排序陣列中的某一值val,將待排序陣列分割成兩部分資料,前一部分陣列比val小 後一部分陣列比val大,之後對每部分資料重複上述過程,最終實現待排序陣列的有序性,例項如下 public class quicksortmain 切分待排序陣列 param arr param low p...

快速排序演算法例項

對關鍵碼序列 66,13,51,76,81,26,57,69,23 進行快速排序。求第一趟劃分後的結果。關鍵碼序列遞增。以第乙個元素為劃分基準。將兩個指標i,j分別指向表的起始和最後的位置。反覆操作以下兩步 1 j逐漸減小,並逐次比較j指向的元素和目標元素的大小,若p j 2 i逐漸增大,並逐次比較...