順序表上實現氣泡排序及其優化

2021-07-25 11:08:01 字數 977 閱讀 3651

氣泡排序

(1)定義順序表的儲存結構;

(2)在順序表上實現氣泡排序;

(3)將普通的氣泡排序進行多次改進以提高排序速度,並用大量資料測試其速度的提高。

1.普通版:

2.第一步優化:

若在一次排序中沒有發生交換,說明此時已經全部有序無需再進行掃瞄

增加乙個標記,記錄是否進行過交換

3.第二步優化:

若上次排序位置為end,表示end-n的數已經有序,下次排序不需要再遍歷

#include #include #include using namespace std;

//定義順序表的儲存結構;

typedef struct redtype;

typedef struct sqlist;//順序表型別

void creatsq(sqlist &l)

void print(sqlist l)

//(2)在順序表上實現氣泡排序;

void bubblesort_a(sqlist &l)

} }print(l);

}//冒泡法第一步優化

//若在一次排序中沒有發生交換,說明此時已經全部有序無需再進行掃瞄

//增加乙個標記,記錄是否進行過交換

void bubblesort_b(sqlist &l)

} if (!flag) break;//若沒有排序,序列有序,退出

} print(l);

}//若上次排序位置為end,表示end-n的數已經有序,下次排序不需要再遍歷

void bubblesort_c(sqlist &l)

} end = k;

if (!flag) break;

} print(l);

}int main()

python實現氣泡排序及其優化

氣泡排序是排序演算法中比較基礎的部分,簡單原理就是 將數量大小比作輕重不同的氣泡,輕的氣泡會冒到重的氣泡之上的思想 最原始的排序 如下 def bubblesort numlist ifnot len numlist return for i in range len numlist for j i...

氣泡排序及其優化(C 實現)

include includeusing namespace std 氣泡排序的特點 每一輪冒泡過後,在過去一輪遍歷中訪問過的元素中的最大元素 一定會到達它最終應當處在的位置。基礎版本的氣泡排序 雙迴圈。外層迴圈控制冒泡次數,內層迴圈實現每一輪的 冒泡處理 先進行元素比較,再進行元素交換。void ...

氣泡排序及其優化

然則 2015年12月30日發布 氣泡排序是比較簡單的,其排序步驟就是比較相鄰元素並將較大的往後移。每掃瞄一輪,將確定乙個元素的位置。實現如下 void sort int a 對氣泡排序的優化主要是減少交換次數。如果一次掃瞄中元素沒有發生交換,那麼排序就可以結束了。為此可設定一標誌量flag,預設為...