快速排序演算法實現C C

2021-07-06 10:21:27 字數 808 閱讀 8132

對於包含n個數的輸入陣列來說,快速排序是一種最壞情況時間複雜度為o(n^2)的排序演算法。雖然最壞情況時間複雜度很差,但是快速排序通常是實際排序應用中最好的選擇,因為它的平均效能非常好:它的期望時間複雜度是o(nlgn),而且o(nlgn)中隱含的常數因子非常小,另外他還能夠進行原址排序,甚至在虛擬環境中也能很好地工作。下面是快速排序的c++實現**及執行結果:

/*

對sum個數進行快速排序

*/#include #include using namespace std;

const int sum = 10;

int partion(int a, int p, int r)

}temp = a[i + 1];

a[i + 1] = a[r];

a[r] = temp;

return i + 1;

}void quicksort(int a, int p, int r)

}void print(int a, int s)

}int main()

cout << "rand numbers: " << endl;

print(a, sum);

quicksort(a, 1, sum);

cout << "quicksort numbers: " << endl;

print(a, sum);

return 0;

}

執行結果如下:

C C 演算法 快速排序

氣泡排序的執行效率太低,因為每次比較相鄰的兩個數,所以時間複雜度為o n 花費的時間太長,所以為了更加的節省時間,提高程式的執行速率,我們可以採用快速排序。對於乙個數集,先把第乙個數當作基準數,然後分別從最右端和最左端向另一方向進行搜尋,以從小到大的順序為例 從右向左搜尋的,遇到比基準數小的與從左向...

C C 實現快速排序

file gm qsort.h brief 實現快速排序 author don hao date 2011 8 21 22 31 06 version email hao.limin gmail.com company modification write modifications here.if...

C C 實現快速排序

1.思想就是遞迴的分而治之,每次遞迴就做兩件事 分段,對這個段依照pivot進行粗略的排序 2.對於分好的段,求出其中位數為pivot,然後小於pivot的全都放到這個段的左邊,大於pivot的全都放到這個段的右邊,下面是實現 include include template t class qui...