交換排序-起泡排序

一、定義

    首先將第一個記錄的關鍵字和第二個記錄的關鍵字進行比較,若爲逆序(即L.r[1].key > L.r[2].key),則將兩個記錄交換之,然後比較第二個記錄和第三個記錄的關鍵字。依次類推,直至第n-1個記錄和第n個記錄的關鍵字進行過比較爲止。上述過程稱爲一次起泡排序,其結果是使得關鍵字最大的記錄被安置到最後一個記錄的位置上。然後進行第二趟起泡排序,直至n - 1趟爲止就完成了整個起泡排序過程。
在這裏插入圖片描述

二、實現

    

/*
冒泡排序:
    算法複雜度 0(n^2),穩定的算法
*/
void bubbleSort(ElementType list[],int n){
    ElementType temp;
	int i,j;
	for(i = 0 ; i < n ;i++){//n - 1趟排序
		for(j = 0; j < n - i + 1; j++){//逐個下沉,下沉到n - i + 1的位置
			if(list[j] > list[j + 1]){//交換
			     temp = list[j + 1];
				 list[j + 1] = list[j];
				 list[j] = temp;
			}
		}
	}
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章