c 演算法和資料結構 快速排序演算法

2022-01-31 23:18:09 字數 726 閱讀 1664

問題描述: 

快速排序演算法

//******************************    

//描述:快速排序演算法 

//類名:quicksort

//******************************  

public class

quicksort

while (a[i] < pivot && i < right);     //

從左向右尋找大於支點元素 

do while (a[j] > pivot && j > 0);     //

從右向左尋找小於支點元素

if (i >= j)

break;

else

//滿足i               

} a[left] = a[j];

a[j] = pivot;     //

以a[j]為新支點,j位置左邊元素值均小於a[j],j位置右邊元素值均大於a[j]

quicksort(a, left, j - 1);      //

遞迴排序

quicksort(a, j + 1, right);

} }

以上程式在microsoft visual studio .net 2003 和visual c# 2005 express edition beta1中均除錯通過.

演算法和資料結構 排序 快速排序

交換位置 交換順序表l中子表的記錄,使樞軸記錄到位,並返回其所在位置 此時在它之前 後 的記錄均不大 小 於它。int partition sqlist l,int low,int high return low 返回樞軸所在位置 對順序表l中的子串行l r low.high 作快速排序 void ...

資料結構 快速排序演算法 C

1 從數列中取出乙個數作為基準數 樞軸,pivot 2 將陣列進行劃分 partition 將比基準數大的元素都移至樞軸右邊,將小於等於基準數的元素都移至樞軸左邊。3 再對左右的子區間重複第二步的劃分操作,直至每個子區間只有乙個元素。快排最重要的一步就是劃分了。劃分的過程用通俗的語言講就是 挖坑 和...

資料結構 快速排序演算法

一趟快速排序的演算法是 1 設定兩個變數i j,排序開始的時候 i 0,j n 1 2 以第乙個陣列元素作為關鍵資料,賦值給key,即key a 0 3 從j開始向前搜尋,即由後開始向前搜尋 j 找到第乙個小於key的值a j 將a j 和a i 互換 4 從i開始向後搜尋,即由前開始向後搜尋 i ...