各種排序演算法 c 及時間複雜度分析

2021-07-10 11:35:45 字數 2639 閱讀 4871

編譯平台:vs2010

#include "stdafx.h"

int _tmain(int argc, _tchar* argv)

; int j,tmp;

for(int i = 1;i<8;i++)

a[j+1] = tmp;

}for(int i = 0;i<8;i++)

printf("\n");

system("pause");

return

0;}

#include "stdafx.h"

void shellsort(int a,int n)

a[j+gap] = tmp;

}gap = gap/2;

}}int _tmain(int argc, _tchar* argv)

; int n = 8;

for(int i =0;iprintf("%d ",a[i]);

}printf("\n");

system("pause");

return

0;}

#include "stdafx.h"

void choicesort(int a,int n)

}}int _tmain(int argc, _tchar* argv)

; choicesort(a,8);

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

printf("%d ",a[i]);

printf("\n");

system("pause");

return

0;}

#include "stdafx.h"

void siftdown(int a,int i,int n)else

done = true;

}}void makeheap(int a,int n)

for(int i = 1;i<=n;i++)

printf("\n");

}void heapsort(int a,int n)

for(int i = 1;i<=n;i++)

printf("\n");

}void siftup(int a,int i)else

i=i/2;

}}int _tmain(int argc, _tchar* argv)

; makeheap(a,a[0]);

/*heapsort(a,8);*/

system("pause");

return

0;}

#include "stdafx.h"

int _tmain(int argc, _tchar* argv)

,tmp;

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

printf("\n");

system("pause");

return

0;}

#include "stdafx.h"

void quicksort(int a,int s,int t)

a[i] = tmp;

quicksort(a,s,i-1);

quicksort(a,i+1,t);

}}int _tmain(int argc, _tchar* argv)

; quicksort(a,0,7);

for(int i = 0

;i<8;i++)

printf("\n");

system("pause");

return0;

}

#include "stdafx.h"

#define maxsize 50

/*對有序的兩段陣列a[p..q]和a[q+1...r]進行合併並排序

*/void merge(int a,int p,int q,int r)else

k++;

}if(s=q+1)

}else

}k=0;

for(int i = p;i<=r;i++)

}void mergesort(int a,int low,int high)

}int _tmain(int argc, _tchar* argv)

; mergesort(a,0,8);

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

printf("%d ",a[i]);

printf("\n");

system("pause");

return

0;}

排序

最好最差

平均穩定性

快排nlogn

n^2nlogn否歸併

nlogn

nlogn

nlogn是堆

nlogn

nlogn

nlogn是希爾

n^1.3否冒泡

nn^2

n^2是

直接插入

nn^2

n^2是

直接選擇

n^2n^2

n^2否

各種排序演算法比較以及時間複雜度

1.氣泡排序 n n。倆個for迴圈決定其時間複雜度為n 2 template class t void swap t a,inti,intj 冒泡法bubble sort template class t void bubsort t a,intn 2.選擇排序 n n。同樣,倆個for迴圈決定其...

排序演算法 之希爾排序及時間複雜度分析

希爾排序 演算法思想 將整個待排序列分割成若干個子串行 由相隔增量個元素組成 分別進行直接插入排序,然後依次縮小增量再進行排序,待整個序列中的元素基本有序時,再對全體元素進行一次直接插入排序。希爾排序的實現應該由三個迴圈完成 1 第一次迴圈,將增量d依次折半,直到增量d 1 2 第二三層迴圈,也就是...

各種排序演算法時間複雜度

各種排序演算法比較 各種常用排序演算法 類別排序方法 時間複雜度 空間複雜度 穩定性複雜性 特點最好 平均最壞 輔助儲存 簡單插入 排序直接插入 o n o n2 o n2 o 1 穩定簡單 希爾排序 o n o n1.3 o n2 o 1 不穩定複雜 選擇排序 直接選擇 o n o n2 o n2...