一、基本概念
? ?排序:將n個數字按一定順序排列(比如:升序,或者降序)
^內部排序 :若整個排序過程不需要訪問外存便能完成,則稱此類排序問題為內部排序?
^外部排序:若參加排序的記錄數量很大,整個序列的排序過程不可能在內存中完成,則稱此類排序問題為外部排序
二、幾種常用的排序方法
?冒泡排序:對所有相鄰記錄的關鍵字值進行比較,如果是逆序(a[j]>a[j+1]),則將其交換,最終達到有序化。
?選擇排序:選擇排序的思想其實和冒泡排序有點類似,選擇排序可以看成冒泡排序的優化。
?快速排序:首先將待排序記錄序列中的所有記錄作為當前待排序區域,從中任選取一個記錄(通常可選第一個記錄),以它的關鍵字作為樞軸(或支點)(pivot),凡其關鍵字小于樞軸的記錄均移動至該記錄之前,反之,凡關鍵字大于樞軸的記錄均移動至該記錄之后?
?插入排序:對于未排序數據,在已排序序列中從后向前掃描,找到相應位置并插入。將記錄R[i]插入到有序子序列R[0..i-1]中,使記錄的有序序列從R[0..i-1]變為R[0..i]?
?希爾排序
?歸并排序