氣泡排序
(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,預設為...