快速排序之按主元分塊新方法(值得一看)

2021-05-27 05:50:03 字數 515 閱讀 5761

int   partition(int* array, int p, int r)

srand((unsigned)time(null));//註冊隨機種子

int temp = rand() % (r - p + 1);//得到隨機數字

swap(array[p+temp],array[r]);//獲得處於軸上的元素

int x = array[r],

i= p - 1,

j;//此種方法是異常的巧妙:   1 8 9 893489534 1 2

//                     i                               j  r(x)//類似這種的方法實在是太高明了

for(j=p; j<=r-1; j++) {

if(array[j] <= x)

i++;

swap(array[i],array[j]);

swap(array[i+1],array[r]);

return i+1;

C Gauss消元之完全主元法

在k次消元的基礎上加了換列操作,其他都一樣。主要部分換行換列 public double findikjk int k,ref int ik,ref int jk return max public void exchangi int k,int ik else return public void...

排序之快速排序

快速排序的在內排中起到比較重要的作用,平均時間複雜度達到o nlogn 公升序快速排序 1 int partition vector vi,int start,int end 11 vi start key 12return start 13 14void quickcore vector vi,i...

排序之快速排序

有沒有既不浪費空間又可以快一點的排序演算法呢?那就是 快速排序 啦!光聽這個名字是不是就覺得很高階呢。假設我們現在對 6 1 2 7 9 3 4 5 10 8 這個10個數進行排序。首先在這個序列中隨便找乙個數作為基準數 不要被這個名詞嚇到了,就是乙個用來參照的數,待會你就知道它用來做啥的了 為了方...