排序演算法詳解(一)

2021-09-30 00:11:10 字數 1147 閱讀 8968

基本原理:氣泡排序是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果它們的順序錯誤就把它們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越大的元素會經由交換慢慢「浮」到數列的末尾

1.1 演算法描述

比較相鄰的元素。如果第乙個比第二個大,就交換它們兩個;

對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對,這樣在最 後的元素應該會是最大的數;

針對所有的元素重複以上的步驟,除了最後乙個;

重複步驟1~3,直到排序完成。

1.2 演算法圖畫

1.3 **詳解

#includeint main()

//核心函式

for (i = 0; i <= n - 1; i++)// 迴圈次數 }}

//按順序輸出數字

for (i = 0; i <= n - 1; i++)

return 0;

}

氣泡排序優化:首先傳統的氣泡排序的時間複雜度較高,高達o(n2),也就是說,計算機在執行這個演算法的時候消耗的時間是比較長的。而導致執行時間長的原因是:在氣泡排序中,乙個元素需要和它之後的每個元素比較,即使這個元素的值一定不會發生交換(即元素的值一定小於(或大於)它之後的值,所以我們可以從這裡進行優化。

**優化:

#includeint main()

//核心函式

for (i = 0; i <= n - 1; i++)// 迴圈次數

}if(b)

break;//如果b=1,則為真,即交換資料;如果b=0;則為假,即已交換資料。

}//按順序輸出數字

for (i = 0; i <= n - 1; i++)

return 0;

}

相比之前的氣泡排序,這次修改之後,如果判斷兩個數沒有進行修改,即後面的數一定大於比較值時,直接跳出迴圈,不需要做無用功。

排序演算法詳解(一)

排序演算法 英語 sorting algorithm 是一種能將一串資料依照特定順序進行排列的一種演算法。穩定性 穩定排序演算法會讓原本有相等鍵值的紀錄維持相對次序。也就是如果乙個排序演算法是穩定的,當有兩個相等鍵值的紀錄r和s,且在原本的列表中r出現在s之前,在排序過的列表中r也將會是在s之前。當...

排序演算法詳解

直接插入 二分插入 希爾排序 氣泡排序 快排 簡單選擇 堆排序 歸併排序 基數排序 總結 一 穩定性 穩定 氣泡排序 插入排序 歸併排序和基數排序 不穩定 選擇排序 快速排序 希爾排序 堆排序 二 平均時間複雜度 o n 2 直接插入排序,簡單選擇排序,氣泡排序。在資料規模較小時 9w內 直接插入排...

排序演算法詳解

排序演算法可以分為內部排序和外部排序,內部排序是資料記錄在記憶體中進行排序,而外部排序是因為排序的資料很大,一次不能容納全部的排序記錄,在排序過程中需要訪問外存.常見的內部排序演算法有 氣泡排序 選擇排序 插入排序 希爾排序 歸併排序 快速排序 堆排序等.介紹氣泡排序是一種簡單的排序演算法,這個演算...