快速排序(快)和選擇排序(慢)

2021-08-30 02:46:09 字數 1081 閱讀 8188

(devc++下的c語言)

#include

#include

#include

#include

using namespace std;

clock_t t1,t2;

double t;

int r[100];

int partition(int r,int first,int end){

int i=first,j=end;

while(i>n;

srand(55);//設定種子數 

for(i=1;i/*cout<<"陣列的隨機輸入是:";

cout<#include

#include

#include

#include

using namespace std;

clock_t t1,t2;

double t;

const int maxn=10001;

int main(){

int n,k,j,i;

float temp,a[maxn];

cout<<"請輸入陣列元素的個數:";

cin>>n;

srand(55);//設定種子數 

for(i=1;i/*cout<<"陣列的隨機輸入是:";

cout《資料量\方法

快速排序

選擇排序

789 個數

0.266 s

0.1 s

7766 個數

1.01 s

1.192 s

77766 個數 

11.039 s

18.026 s

由上表可知當資料量在幾百的時候快速排序比選擇排序慢;當資料量在幾千的時候快速排序和選擇排序用時差不太多;當資料量上公升到幾萬的時候快速排序明顯比選擇排序快了很多。由此可見當資料量少的時候選擇排序快,當資料量很大的時候快速排序用時很短。分析程式,因為快速排序用的是遞迴呼叫、選擇排序用的是迴圈所以資料量小的時候選擇排序快。又由於快速排序的時間複雜度為nlog n、選擇排序的時間複雜度為n2,所以當資料量很大的時候時間複雜度起主導作用,即時間複雜度越小的排序時間用的越少。

選擇排序和快速排序

include intmain int len strlen str 獲取字串長度 char min z 給乙個初始值,只需要它的ascal碼值小於等於z即可 int i int tempp for int j 0 j j str tempp str j str j min min z 內層迴圈每執...

快速排序,選擇排序

選擇排序 123 4567 891011 1213 1415 1617 1819 2021 2223 int selectionsort int argv int size 選擇排序 if minindex i return time 來自code的 片 selectionsort.cpp 快速排序...

選擇排序,快速排序

二 快速排序 學習各種排序演算法,後續會繼續補充。例 對資料從小到大進行排序 先在列表中檢查每個元素找到最小的 需要的時間o n 執行n次這樣的操作 需要的總時間o n n n nn n 即o n 2n 2 n2 def findsmallest arr smallest arr 0 smalles...