在交換排序這一類中,分為氣泡排序和快速排序,快速排序是建立在
氣泡排序基礎上的乙個優化,很有意義的乙個排序,在各種acm競賽
以及其他領域中經常被用到;
接下來,我們先看一看氣泡排序。
氣泡排序基本思想:
通過無序區中相鄰記錄關鍵字間的比較和位置的交換,
使關鍵字最小的記錄如氣泡一般逐漸往上「漂浮」直至「水面」。
整個演算法是從最下面的記錄開始,對每兩個相鄰的關鍵字進行比較,
且使關鍵字較小的記錄換至關鍵字較大的記錄之上,使得經過一趟
氣泡排序後,關鍵字最小的記錄到達最上端,接著,再在剩下的記
錄中找關鍵字次小的記錄,並把它換在第二個位置上。依次類推,
一直到所有記錄都有序為止。
#includeusing namespace std;
int main()
for(i=0;ii;j--)
}a[i]=val; /*將儲存在val中的數放到a[i]中*/
quicksort(a,i); /*遞迴,對前i個數排序*/
quicksort(a+i+1,numsize-i-1);/*對i+2到numsize這numsize-1-i個數排序*/
} }int main()
另一種寫法::
void qksort(recordtype r,int low, int high )
/*對記錄陣列r[low..high]用快速排序演算法進行排序*/
int main()
qsort(s,5,sizeof(s[0]),com);
for(i=0;i
排序演算法之交換排序
交換排基本思想 兩兩比較待排序元素的關鍵字,發現兩個元素的次序相反時即進行交換,知道沒有反序的元素為止。本節介紹兩種交換排序,即氣泡排序和快速排序。氣泡排序 每次只能和相鄰的位置數進行交換,效率低 include int a 100 void quicksort int left,int right...
內部排序之交換排序
快速交換排序簡介及其 冒泡交換排序及其 交換排序總結 我們知道假如乙個已排好序的陣列,假如是從小到大公升序排列,則隨便取其中乙個數n,則n左邊所有數都小於或等於n,右邊的都大於或等於n.那反向思維下,我們先隨便取陣列第乙個數為基準x,然後將所有小於它的數交換到左邊,大於它的數交換到右邊.最後x可能就...
經典排序之交換排序
交換排序的基本思想是 對待排序資料元素,兩兩比較其關鍵字,若發現存在逆排序,則交換這兩個資料,一直到待排序資料元素中沒有逆序為止。一 氣泡排序 bubble sort 氣泡排序是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果它們的順序錯誤就把它們交換過來。走訪數列 的工作是...