日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > c/c++ >内容正文

c/c++

C++实现快速排序算法QuickSort()

發(fā)布時(shí)間:2025/7/14 c/c++ 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 C++实现快速排序算法QuickSort() 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

算法基本思想:

第一步:
教官面對(duì)一列無(wú)序的隊(duì)伍,他指著最右邊的一個(gè)人A說(shuō):“比他高的站他右邊,比他矮的站他左邊。”
完成之后,隊(duì)伍被他分割成了兩列,第一列:比A矮的在A的左邊;第二列:比A 高的在A 的右邊。
第二步:
他首先處理第一列,指著在A的左邊的一個(gè)人B(也就是第一列中的最右邊的一個(gè)人)
說(shuō)到:“比B高的站他右邊,比B矮的站他左邊”。這樣完成之后,第一列又他成了兩列。
同樣的方法處理第二列,第二列也被分成兩列。
第二步完成之后,序列變成了四列。教官又以上面的方法處理這四列,如此循環(huán)下去。。。
那什么時(shí)候遞歸停止呢?那就是當(dāng)最后被分割成的小列中只有一個(gè)人的時(shí)候遞歸停止,不用再分了。
當(dāng)然,上例中考官是以最右邊的人為基準(zhǔn),進(jìn)行分割的。你也可以隨便指一個(gè)人作為基準(zhǔn)進(jìn)行分割。



?

?

算法的實(shí)現(xiàn):

?

//---------QuickSort.h-----------// class QuickSort { const int arraySize; float * array; public: QuickSort(int arraySize); ~ QuickSort(); void Initital(); int Partition(int first, int last); void Quicksort(int first, int last); void Sort(); void PrintIt(); };??

//-------------QuickSort.cpp------------// #include "iostream" #include "QuickSort.h" using namespace std; QuickSort::QuickSort(int Size):arraySize(Size) { } void QuickSort::Initital() { array = new float[arraySize]; for(int i = 0; i < arraySize; i++) { cout << "Input the number " << i+1 << " : "; cin >> array[i]; } cout << "Entered !" << endl; } int QuickSort::Partition(int first, int last) { int i, j; j = first - 1; for(i = first; i < last; i++) //Partition的精華思想,把last當(dāng)做是標(biāo)準(zhǔn) { if(array[i] < array[last]) { j ++; float temp = array[i]; array[i] = array[j]; array[j] = temp; } } float temp = array[last]; array[last] = array[++j]; array[j] = temp; return j; } void QuickSort::Quicksort(int first, int last) { int pivot; if(first < last) //算法的基本實(shí)現(xiàn) { pivot = Partition(first, last); Quicksort(first, pivot - 1); Quicksort(pivot + 1, last); } } void QuickSort::Sort() { Quicksort(0, arraySize - 1); } void QuickSort::PrintIt() { cout << "After QuickSort :" << endl; for(int i = 0; i < arraySize; i ++) { cout << array[i] << " "; } cout << endl; } QuickSort::~QuickSort() { delete []array; }//------------main.cpp------------// #include "iostream" #include "QuickSort.h" using namespace std; int main() { int size; cout << "Enter the size of the array : "; cin >> size; if(size > 0) { QuickSort sort(size); sort.Initital(); sort.Sort(); sort.PrintIt(); system("pause"); } return 0; }

?

感想:

本文算法只是一個(gè)QuickSort的模板,可以根據(jù)情況來(lái)靈活應(yīng)變,當(dāng)然也有許多地方可以優(yōu)化,在這就不再多述了

轉(zhuǎn)載于:https://www.cnblogs.com/kedebug/archive/2009/12/09/2791763.html

總結(jié)

以上是生活随笔為你收集整理的C++实现快速排序算法QuickSort()的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 久久精品视频在线免费观看 | 天天干天天摸 | 99精品99| 国产精品三级在线观看无码 | 国产精品午夜福利 | 强辱丰满人妻hd中文字幕 | 视频在线日韩 | 91精品国产闺蜜国产在线闺蜜 | 狠狠操av| 福利一区二区在线观看 | 波多在线播放 | 摸摸摸bbb毛毛毛片 午夜爽爽影院 | 精品亚洲永久免费精品 | 天天5g天天看| 艳妇臀荡乳欲伦交换h漫 | 黄色1级片 | 国产精品久久久久一区二区 | xxxxx黄色片| mm1313亚洲国产精品美女 | 成人乱码一区二区三区av | 热久久网站 | 不卡视频一区 | 天堂久久一区 | 波多野结衣中文字幕在线播放 | 欧美一级全黄 | 五月天开心网 | 伊人影院综合在线 | 黄色片a级片 | 草莓视频在线观看18 | 国产中文一区二区 | 激情拍拍拍 | 91av一区| 丰满少妇在线观看资源站 | 波多野结衣av中文字幕 | 97色网| 亚洲AV无码国产精品播放在线 | 欧美亚洲中文精品字幕 | 亚洲一区二区自拍 | 日韩一区二区三区久久 | 九色tv| 悠悠色在线 | 天天射天天干天天操 | 丝袜性爱视频 | 人人妻人人爽人人澡人人精品 | youjizz.com国产 | 伊人青青久 | 性高湖久久久久久久久免费 | 亚洲天堂男人的天堂 | h片在线免费观看 | 不卡一区二区三区四区 | 大尺度做爰床戏呻吟舒畅 | 91精品久久久久久久久中文字幕 | 欧美男人亚洲天堂 | 538任你躁在线精品免费 | 亚洲精品久久久久中文字幕二区 | 国产成人高清在线 | 免费的黄色av | 免费视频二区 | 国产免费av一区二区 | 午夜精品久久久久久久99黑人 | 亚洲综合色一区二区 | 91麻豆网| 国产又大又黄又爽 | 最近最新中文字幕 | 日韩美在线 | av在线操 | 97久久久| 亚洲影视网 | 国产精品电影一区二区 | 操亚洲女人 | 无码人妻精品一区二区三区9厂 | 久久久久久久性 | 少妇无码吹潮 | 999热| 美女黄色一级 | av色片 | 久久香蕉综合 | 丰满护士巨好爽好大乳 | 色婷婷国产精品久久包臀 | 亚洲无在线观看 | 成人福利在线看 | 亚洲拍拍视频 | 欧美精品久久久久久久自慰 | 巨胸爆乳美女露双奶头挤奶 | 自拍偷拍第一页 | 香蕉视频免费在线观看 | 欧美日韩激情视频 | 亚洲天堂精品视频 | 久久久久久久麻豆 | 啪啪av导航 | 99国产精品国产免费观看 | 日本一区二区三区在线看 | 亚洲九九精品 | 麻豆影视 | 一区二区三区在线不卡 | 97se亚洲综合 | 国产一级不卡毛片 | 国产女人高潮毛片 | 快色污|