閒來沒事,寫了乙個程式玩玩,省的到時候會了shell,又不會c的程式設計了【手動痛哭】
本著簡明的原則,選取的標準數是在陣列的 開頭 或者 結尾處
這裡需要注意,如果你選擇的基準數是在左側,那麼就需要從右側開始遍歷陣列;從右側選取的基準數也是同理。
#include #include #include using std::cout;
using std::endl;
void qsort_reverse(int array, int begin, int end)
int tmp = array[end];
int head = begin;
int foot = end;
while(true)
}if(head > foot)
else
for(; foot >= begin; --foot)
}if(foot < head)
else
}qsort_reverse(array, begin, head-1);
qsort_reverse(array, head + 1, end);
}void qsort(int array, int begin, int end)
int tmp = array[begin];
int head = begin;
int foot = end;
while(true)
}if(foot < head)
else
for(; head <= end; ++head)
}if(head > foot)
else
}qsort(array, begin, head-1);
qsort(array, head + 1, end);
}int main(int argc, char** ar**)
for(int i = 0; i < 10; ++i)
cout << endl;
//qsort(array, 0, 9);
qsort_reverse(array, 0, 9);
for(int i = 0; i < 10; ++i)
cout << endl;
return 1;
}
快速排序演算法的一種實現
參考部落格 白話經典演算法系列之六 快速排序 快速搞定 功能 實現快速排序演算法 include 方法宣告 intadjustsort int a,int m,int n void quicksort int a,int m,int n int main void printf 排序前的陣列順序.n...
一種快速排序演算法
using system class program for int l 0 l src.length l src count temp l i 3 0xff temp l static void main string args watch.stop console.writeline quick...
快速排序的一種較簡單寫法
文中的快速排序實際上是快速找到首位元素的實際位置並放置,接著通過二分法,進行遞迴查詢放置,完成排序。void quicksort int a,int low,int high int i low,j high if i temp i首先我們拿到一組資料a,找到a的最低位下標和最高位下標。接著使用哨兵...