快速排序演算法sort分析

2021-06-28 07:12:38 字數 571 閱讀 3294

思想:快速排序的思想是分治法的思想

思路:先從右往

左找乙個小於基數的數,再從左往

右找乙個大於基數的數,然後交換他們。

1、按照這個序列的首元素為 mid 基準,把比比mid大的元素放在後面,比 mid 小的元素放前面,後依次遞迴。

2、把在 mid 前面的所有元素當成乙個新的序列進行剛才的操作,在mid後面的元素看成乙個新的序列也進行這樣的操作,直到這樣得到的序列為乙個元素。則排序完成。

注意:當然為基準的元素不一定非要是1:首元素,也可以選2:末尾元素,或者3中間位置元素,4取首、末、中的中間值,4、取乙個隨機數。當然這個基準選取的好的話演算法的效率會不同,最好是每次取乙個所有元素排序之後的中間元素,這樣演算法的效率最高。

#include #include using namespace std;

int num[500];

int partition(int low,int high)

{ int i = low,j = high,pivot = num[low];

while(i=pivot)

j--;

while(i

快速排序演算法sort分析

快速排序的思想是分治法的思想。一般是按照這個序列的首元素為 mid 基準,把比比mid大的元素放在後面。比 mid 小的元素放前面。然後依次遞迴,把在 mid 前面的所有元素當成乙個新的序列進行剛才的操作,在mid後面的元素看成乙個新的序列也進行這樣的操作,直到這樣得到的序列為乙個元素。則排序完成。...

sort快速排序

include include 用sort必須加入的標頭檔案 using namespace std struct text bool cmp1 int a,int b bool cmp2 char a,char b bool c text a,text b bool cmp4 text a,tex...

sort快速排序

使用sort必須要有相應的標頭檔案 include。sort begin,end 直接用的話是按照公升序排列,end指向最後乙個元素的下乙個位置 int a n sort a,a n sort a,a n,cmp cmp為乙個函式控制sort是公升序還是降序排列 bool cmp int a,int...