c 資料結構 交換排序(起泡排序)

2021-10-12 00:26:21 字數 378 閱讀 5188

1.演算法思想:兩兩比較相鄰的關鍵碼,如果反序,則要交換位置,直到沒有反序記錄為止

2.每一趟起泡排序前,令exchange的初值=0;

在以後的排序過程中,只要有記錄交換 exchange就不為0

所以,一趟比較結束時,可以通過exchange的值是否為0來判斷是否有記錄交換,從而判別整個氣泡排序的結束

while(exchange)

}}4.時間效能分析

(1)最好情況(正序)

時間複雜度(n)

(2)最壞情況(逆序)

時間複雜度o(n²)

5.如何改變氣泡排序的不對稱性

在排序中交替改變掃瞄方向

(1)奇數趟 從左到右掃瞄

(2)偶數趟 從右往左掃瞄

資料結構 交換排序

交換排序的基本思想是 兩兩比較待排序記錄的關鍵字,如果發生逆序 即排列順序與排序後的次序正好相反 則交換之,直到所有記錄都排好序為止。基本思路 每趟不斷將記錄兩兩比較,並按 前小後大 或 前大後小 規則交換。優點 每趟結束時,不僅能擠出乙個最大值到最後面位置,還能同時部分理順其他元素 一旦下趟沒有交...

資料結構交換排序之起泡排序 參考嚴蔚敏資料結構

開始時是整個順序表都是無序的,就算有序計算機也不知道 而後逐步擴大有序序列,減小無需序列 有序序列在表後,無序序列在表前,且有序序列中的key最小的元素的key都大於無序序列中的任意乙個元素的key includeusing namespace std define n 8 void bubble ...

資料結構 排序之交換排序

本節將兩種交換排序氣泡排序和快速排序 氣泡排序是最簡單的交換排序方法,比較相鄰兩個記錄的關鍵字,將大的放到右邊,小的放到左邊,如圖所示 從而使關鍵字小的左移 大的右移 每一次迴圈最右邊的必定是關鍵字最大的元素,外面再加一層迴圈即可得到有序序列。實現 include using namespace s...