問題描述:
快速排序演算法
//******************************
//描述:快速排序演算法
//類名: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 ...