一、歸併排序
將原序列分成若干個子串行,然後重組
#include.h>
using namespace std;
const int n=9
;int a[n]
=;int temp[n]
;void
msortroot
(int f,int e,int mid)
while
(i//排序後有遺漏需再次填入
while
(j<=e)
k=f;
while
(h<=e)
//賦值給a
}void
msort
(int f,int e)
}int main()
二、快速排序
找到軸值k,然後左邊右邊分別遞迴尋找
1、我自己寫的(遇到大資料直接tle
#include.h>
using namespace std;
const int n
=10000010
;int a[n]
;int qsort1
(int f,int e)
while
(i<=a[j]
) i++;if
(i}return i;
}void
qsort2
(int f,int e)
}int main()
2、大佬寫的
#include
using namespace std;
int n,a[
1000001];
void
qsort
(int l,int r)
//應用二分思想
}while
(i<=j)
;//這裡注意要有=
if(lqsort
(l,j)
;//遞迴搜尋左半部分
if(iqsort
(i,r)
;//遞迴搜尋右半部分
}int main()
三、直接插入排序
如果發現a[i].h>
using namespace std;
const int n
=1000010
;int a[n]
;void
isort
(int n)
}int main()
四、希爾排序
直接插入的優化,在分組中將問題簡化
#include.h>
using namespace std;
const long long n
=1000010
;long long a[n]
;void
isort
(int n)
a[j+d]
=a[0];
}}}int main()
第八章 排序技術
排序共分為5大類,插入 交換 選擇 歸併 分配。他們的穩定性及平均時間效能如下圖 這是幾種排序演算法的簡單思想 1.直接插入排序 每一趟將乙個待排序的記錄,按其關鍵字的大小插入到已經排好序的一組記錄的適當位置上,直到所有待排序記錄全部插入為止。2.希爾排序 先取乙個小於n的整數d1作為第乙個增量,把...
第八章 指標 第八章 指標
1 什麼是位址 include using namespace std int main 11 在堆中建立對像 我們既然可以在堆中儲存變數,那麼也就可以儲存對像,我們可以將對像儲存堆中,然後通過指標來訪問它 include using namespace std class human 14 在建構...
第八章 排序 選擇排序
資料結構基礎 嚴蔚敏 人郵教育出版社 簡單選擇排序 include intselectionsort int a,int n t a i a i a minj a minj t sw if i minj return sw int main sw selectionsort a,n for i 0 ...