快速排序的遞迴寫法

2021-07-14 08:41:33 字數 861 閱讀 1573

//*****************************快速排序(遞迴)****************************

//遞迴思想:單趟來說,begin找比key大的,end找比key小的,當各自都找到的時候,

//          若begin比end小,則交換兩個資料,然後繼續找,當再找到的時候,如果

//          begin比end大,則比較a[begin]和key的值,若a[begin]大於key,說明

//          a[begin]的位置應該是key的位置,則交換,然後以key左邊和右邊分別進

//          行相同操作,否則,key的位置不變

int

partsort(

int*

a ,

intleft

, int

right

) }if(

a [begin]>

a [

right

])

else

return

right

; }void

quicksort(

int*

a ,

intleft

, int

right

)

void

quicksorttest() ;

intarr = ;

int_size =

sizeof

(arr) /

sizeof

(arr[0]);

quicksort(arr, 0, _size - 1);

print(arr, _size); }

快速排序的寫法

面試中乙個頻率極高的問題就是要手寫快速排序,實際上涉及下標變換的 極其容易寫錯,基本上涉及整數下標操作的問題都算是難度中等偏上的了。對於一些經典問題,我們要時不時的去練習,這裡給出演算法導論上的和stl中實現的快速排序的兩種不同寫法。template size t partition t a,siz...

遞迴 快速排序 快速排序

問題描述 用遞迴來實現快速排序 quick sort 演算法。快速排序演算法的基本思路是 假設要對乙個陣列a進行排序,且a 0 x。首先對陣列中的元素進行調整,使x放在正確的位置上。同時,所有比x小的數都位於它的左邊,所有比x大的數都位於它的右邊。然後對於左 右兩段區域,遞迴地呼叫快速排序演算法來進...

遞迴 氣泡排序的遞迴式寫法

第一次氣泡排序如上圖 比較順序是 01 12 23 34 第二次是 01 12 23 第三次是 01 12 第四次 01 經過這些有限次的比較以後 使得陣列元素有序。遞迴的寫法和思路也是基本相同 先上非遞迴的 基礎氣泡排序 排完序是遞減的有序序列 n是元素個數 for int i 1 i那氣泡排序就...