排序共分為5大類,插入、交換、選擇、歸併、分配。他們的穩定性及平均時間效能如下圖:
這是幾種排序演算法的簡單思想:
1.直接插入排序:每一趟將乙個待排序的記錄,按其關鍵字的大小插入到已經排好序的一組記錄的適當位置上,直到所有待排序記錄全部插入為止。
2.希爾排序:先取乙個小於n的整數d1作為第乙個增量,把檔案的全部記錄分組。所有距離為d1的倍數的記錄放在同乙個組中。先在各組內進行直接插入排序;然後,取第二個增量d2
=1(3.起泡排序:它重複地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果他們的順序(如從大到小、首字母從a到z)錯誤就把他們交換過來。走訪元素的工作是重複地進行直到沒有相鄰元素需要交換,也就是說該元素已經排序完成。
4.快速排序:首先任意選取乙個資料(通常選用陣列的第乙個數)作為關鍵資料,然後將所有比它小的數都放到它前面,所有比它大的數都放到它後面,這個過程稱為一趟快速排序。
5.簡單選擇排序:方法是設所排序序列的記錄個數為n。i取1,2,…,n-1,從所有n-i+1個記錄(ri,ri+1,…,rn)中找出排序碼最小的記錄,與第i個記錄交換。執行n-1趟 後就完成了記錄序列的排序。
第八章 排序技術
一 歸併排序 將原序列分成若干個子串行,然後重組 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...
第八章 指標 第八章 指標
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 ...