基本演算法 》快速排序(c 實現)

2021-08-18 14:23:38 字數 697 閱讀 1177

演算法:1 在要排序的無序演算法中,選出乙個元素作為標誌。(通常這個標誌選擇陣列中的第乙個元素)

選完標誌後,先從左向右找出小於標誌的值,將他的值付給陣列中標誌下標的值,然後再從右向左查詢小於標誌的值,然後把小於標誌的值,付給之前大於標誌的下標的值。(就是把小於標誌的值放在標誌值的左邊,大於標誌的值放在標誌值的右邊,這樣每個函式執行完後,左邊就是小於標誌值的事,右邊就是大於標誌值的事),然後再遞迴呼叫 **如下:

#include using namespace std;

templatevoid quicksort(t *a,int l,int r)//l,r分別代表左右邊界

if(i//此時如果沒找到,j=i;

//第二遍,從左向右找大於x的值,並且把它的值賦給a[j]

while(iif(i//每次迴圈到這時都是a[i]有兩個值,所以為了節約資源,我們在迴圈外,把x的值賦給a[i]

}a[i]=x;

//呼叫遞迴

quicksort(a,l,i-1);//從左到x再排序

quicksort(a,i+1,r);//從右到x再排序

}}int main()

; for(int i=0;i<5;i++)

cout

for(int i=0;i<5;i++)

cout<}

快速排序演算法 c 實現

namespace backpackproblem backpack bp new backpack profit int start 0 int end profit.length 1 bp.quicksort profit,start,end bp.print class backpack 快速...

快速排序演算法C 實現

經常看到有人在網上發快速排序的演算法,通常情況下這些人是在準備找工作,或者看 演算法導論 這本書,而在他們發布的 通常是差不多的版本,估計也是網上 copy 一下,自己改改,跑過了就算了,但是通常這樣玩根本沒有太大作用,如果到一家公司,給你一台不能上網的筆記本,20分鐘,你是根本寫不出來快速排序的演...

快速排序演算法C 實現

quick sort stl中也有現成的快速排序演算法,內部實現採用了以下技巧 1 樞軸的選擇採取三數取中的方式 2 後半段採取迴圈的方式實現 3 快速排序與插入排序結合 include include includeusing namespace std 這一版本是最簡單實現版本,對於快速排序的優...