基本思想:在乙個待排序序列中,兩兩比較元素的排序碼,如果不滿足次序要求則進行交換,直到整個排序序列滿足要求。
思想:對待排序序列從前向後,依次比較相鄰元素的排序碼,若發生逆序,則進行交換。
實現:
#include void bubblesort(int *p, int n)
} if(!flag) //減少不必要的比較
return; }}
int main()
;
//輸出待排序序列
printf("待排序序列:");
for(m = 0; m < 7; m++)
printf("\n");
//氣泡排序
bubblesort(a, 7);
//輸出排序後的序列
printf("經過氣泡排序後的序列:");
for(n = 0; n < 7; n++)
printf("\n");
return 0;
}
結果:
分析:
思想:從待排序序列中選取乙個基準元素(一般選取第乙個元素),按照該元素排序碼的大小,將待排序序列分為兩個子串行,左邊子串行元素的排序碼都小於基準元素的排序碼,右邊子串行元素的排序碼都大於或等於基準元素的排序碼,找到基準元素的最終位置。之後在左右兩個子串行中重複以上步驟,直到子串行中只有乙個元素。(氣泡排序的改進)
實現:
#include int findpivotloc(int *q, int low2, int high2)
q[low2] = q[high2]; //小於基準元素的元素放在左邊
while(low2結果:
分析:
排序演算法 交換排序
交換排序的基本思想 兩兩比較待排序元素的關鍵字,發現兩個元素的次序相反時則進行交換,直到沒有反序的元素為止。1.氣泡排序 交換排序 演算法 氣泡排序 bubble sort 輸入 待排序元素的陣列,待排序元素個數 輸出 原理 通過無序區中相鄰元素間關鍵字的比較和位置的交換,使關鍵字最小的元素如氣泡一...
交換排序演算法
快速排序 為啥叫快速排序,因為速度快,效率高 1.先找乙個數作為基準。作為基準的這個數,一趟排下來,左邊的數必小於它,右邊的數必大於它,也就是說,它找到了自己的位置。2.將兩個指標i,j分別指向表的起始 基準 和最後的位置。3.比較j指標的數字是否小於基準,j 直到j小於基準,交換位置 4.比較i指...
交換排序演算法
就是根據序列中兩個記錄鍵值的比較結果來對換這兩個記錄在序列中的位置。將鍵值較大的記錄向序列的尾部移動,鍵值較小的記錄向序列的前部移動。氣泡排序 快速排序 說明 1.以下方法最後結果均按照公升序排列 2.用4,2,1,3,7,4,5,8,3,5序列進行測試 1 基本思想 在n個待排序陣列中選取待排序數...