輔導筆記(3):快速排序

#include<iostream>

using namespace std;

int a[101],n;

void quicksort(int left,int right){

int i=left,j=right;

int k=a[left];//變量k臨時存放最左邊的元素,單獨保存

while(i<j){

? //先從最右邊開始

? while(a[j]>=k&&i<j) //如果右邊比k大,向左走 i<j控制走到頭的情況

? ? ? j--;

? a[i]=a[j];//替換

? while(a[i]<=k&&i<j) //如果左邊比k小,向右走;

? ? ? i++;

? a[j]=a[i];

}

? a[i]=k;? //把k還原到i的位置,a[i]元素

? if(left<i) quicksort(left,i-1);

? if(i<right) quicksort(i+1,right);?

}

int main(){

cin>>n;

for(int i=1;i<=n;i++)? cin>>a[i];

quicksort(1,n);

for(int i=1;i<=n;i++)? cout<<a[i]<<" ";

return 0;

}

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

  • 1.實現(xiàn)快速排序算法 問題描述給定一個無序數(shù)組int[ ] a,使用快速排序算法進行排序。 解題思路對于快速排序,...
    孫樹沖閱讀 1,481評論 0 1
  • 各校歷年復試機試試題 清華、北大、華科試題詳細筆記部分,少筆記部分與少數(shù)leetcode【含個人整理筆記】 一、詳...
    AIM外星人閱讀 1,333評論 0 1
  • 一、partition quicksort 分治+遞歸 快速排序一次劃分算法偽代碼: 將i和j分別指向待排序列最左...
    敲可愛的小超銀閱讀 535評論 0 0
  • 有時候會忘了自己喜歡什么 就好像不喜歡全世界一樣 但也不討厭 會覺得很迷茫 默默地為邊走邊遺失著的那些自認為覺得重...
    DaluDalu閱讀 259評論 0 1
  • 星巴克要全面禁用塑料吸管 這是怎么回事?對于喜歡去星巴克喝東西的朋友來說,由于受到政策的管控,其要做出一些調(diào)整了,...
    永不言棄512閱讀 383評論 0 0

友情鏈接更多精彩內(nèi)容