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

歡迎訪問 生活随笔!

生活随笔

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

c/c++

数据结构之快速排序图文详解及代码(C++实现)

發(fā)布時(shí)間:2025/3/20 c/c++ 13 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据结构之快速排序图文详解及代码(C++实现) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

代碼:

#include<iostream> using namespace std; #define MAXSIZE 20//順序表的最大長度 typedef int KeyType;//定義關(guān)鍵字類型為整型 typedef int InfoType; typedef struct {KeyType key;//關(guān)鍵字項(xiàng)InfoType otherinfo;//其他數(shù)據(jù)項(xiàng) }RedType; typedef struct {RedType r[MAXSIZE+1];//r[0]閑置或做哨兵單元int length;//順序表的長度 }SqList;//順序表類型int Partition(SqList &L,int low,int high)//對順序表L中的子表r[low..high]進(jìn)行一趟排序,返回樞軸位置 {KeyType pivotkey;L.r[0]=L.r[low];//用子表的第一個(gè)記錄作樞軸記錄pivotkey=L.r[low].key;//樞軸記錄關(guān)鍵字保存在pivotkey中while(low<high)//從表的兩端交替地向中間掃描{while(low<high&&L.r[high].key>=pivotkey)--high;L.r[low]=L.r[high];//將比樞軸記錄小的記錄移到低端while(low<high&&L.r[low].key<=pivotkey)++low;L.r[high]=L.r[low];//將比樞軸記錄小的記錄移到低端}//whileL.r[low]=L.r[0];return low; }void QSort(SqList &L,int low,int high) {int pivotloc;//調(diào)用前置初值:low=1,high=L.length//對順序表L中的子表r[low..high]進(jìn)行一趟排序,返回樞軸位置if(low<high)//長度大于1{pivotloc=Partition(L,low,high);//將L.r[low..high]一分為二,pivotlocs是樞軸位置QSort(L,low,pivotloc-1);//對左子表遞歸排序QSort(L,pivotloc+1,high);//對左子表遞歸排序} }void QuickSort(SqList &L)//對順序表L做快速排序 {QSort(L,1,L.length); }int main() {SqList L;for(int i=1;i<=10;i++)L.r[i].key=11-i;L.length=10;for(int i=1;i<=L.length;i++)cout<<L.r[i].key<<" ";cout<<endl;QuickSort(L);for(int i=1;i<=L.length;i++)cout<<L.r[i].key<<" ";cout<<endl;return 0; }

運(yùn)行結(jié)果:

總結(jié)

以上是生活随笔為你收集整理的数据结构之快速排序图文详解及代码(C++实现)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

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