C 直接排序

2021-10-10 15:12:30 字數 783 閱讀 2820

直接排序也叫分割槽交換排序

直接排序的思想:即在乙個檔案中選擇乙個值,則以這個值為中間值,比它大的放右邊,小的放左邊,此時可以找出所以比它大的值在右邊,比他小的值在左邊,此時再將比這個中間值小的再次排序一次 ,大的排序一次,顯然有遞迴的思想在裡面

快速排序中要知道起始位置與終止位置,上面所說的之間值可以檔案中的任意值,在這裡還是設為起始位置

直到中間值之後就要開始比較大小由於中間值設定為起始位置,所以可以從終止位置開始比較,終止位置在後面,所以一定大於中間值,如果大於則比較終止位置的前乙個直到小於中間值時,如果小於則應該放在中間值的前面

在遇到終止位置的值小於中間值之後,將這個值移到中間值的前面去,則此時開始比較起始位置的值,起始位置的值在前面,所以是小於中間值的,如果小於則起始位置就加一,向後移,當遇到大於中間值的時候則將這個值移到後面去

一直重複2與3的步驟,直到起始位置不小於終止位置時,則表明此時的左邊全是小於中間值的值,右邊全是大於中間值的值,此時可以遞迴,在比中間值小的那一邊可以將終止位置設為中間值的位置減一,而比中間值大的一邊則將起始位置的值加一。一直遞迴下去,直到起始位置不再小於終止位置時。則表明排序完成。

**如下:

void quicksort(int arr,int begin,int end)

while(i= arr[i])

if(i < j)

} arr[i] = temp;

quicksort(arr,begin,--j);

quicksort(arr,++i,end);

}

c與c 直接排序演算法

標頭檔案 using namespace std 1.預設的sort函式是按公升序排。對應於1 sort a,a n 兩個引數分別為待排序陣列的首位址和尾位址 2.可以自己寫乙個cmp函式,按特定意圖進行排序。對應於2 例如 int cmp const int a,const int b sort ...

C 實現直接選擇排序

直接選擇排序的特性總結 選擇排序 selection sort 是一種簡單直觀的排序演算法。它的工作原理是 第一次從待排序的資料元素中選出最小 或最大 的乙個元素,存放在序列的起始位置,然後再從剩餘的未排序元素中尋找到最小 大 元素,然後放到已排序的序列的末尾。以此類推,直到全部待排序的資料元素的個...

C 排序1(氣泡排序 直接排序 快速排序)

氣泡排序 就是兩個兩個的這個比較好理解,也比較好寫出來。它的原理就是相鄰的兩個兩個的比較,如果前面的數比後面的大,那麼交換,它這個在比較完一次的時候可以得到最大的乙個數,然後接著迴圈,每次外迴圈中內迴圈的次數比原來少一次。下面是c 氣泡排序 1 region 氣泡排序 2 3 氣泡排序 4 5 6 ...