氣泡排序和選擇排序的不同

2021-10-22 02:52:44 字數 1720 閱讀 4646

排序是電腦程式中的主要任務之一,陣列的元素按特定順序排列。排序使搜尋更容易。氣泡排序和選擇排序是排序演算法,可以通過它們使用的排序方法加以區分。氣泡排序本質上是交換元素,而選擇排序通過選擇元素來執行排序。

二者的另乙個顯著區別是氣泡排序是一種穩定的演算法,而選擇排序是一種不穩定的演算法。穩定的意思是,在列表或陣列排序前後,具有相同值的記錄以相同的順序出現。一般來說,大多數穩定快速的演算法都使用額外的記憶體。

對比圖比較項

氣泡排序

選擇排序

基本相鄰元素進行比較和交換

選擇最大的元素並與最後乙個元素交換(在公升序的情況下)

最佳情況時間複雜度

o(n)

o(n

2n^2

n2)效率

效率低比氣泡排序效率高穩定是

否方法交換選擇速度慢

比氣泡排序快

氣泡排序的定義

氣泡排序是最簡單的迭代演算法,它將每個元素與它旁邊的元素進行比較,並在需要時交換它們。簡單地說,它比較列表的第乙個和第二個元素,當它們的順序不正確時,交換它們。類似地,第二個和第三個元素被比較和交換,這種比較和交換繼續到列表的末尾。

第一次迭代中的比較次數是n-1,其中n是陣列中的元素數。第一次迭代後,最大的元素位於第n個位置。每次迭代後,比較次數減少,最後一次迭代只進行一次比較。

此演算法是最慢的排序演算法。氣泡排序的最佳情況複雜度(當列表按順序排列時)的順序為n(o(n)),最壞情況複雜度為o(n

2n^2

n2)。在最好的情況下,它的順序是n,因為它只是比較元素而不交換它們。這種技術還需要額外的空間來儲存臨時變數。

選擇排序的定義

選擇排序的效能略好於氣泡排序演算法,而且效率較高。假設我們要按公升序排列乙個陣列,那麼它的作用是找到最大的元素並與最後乙個元素交換,然後在子陣列上重複以下過程,直到整個列表被排序。

在選擇排序中,已排序陣列和未排序陣列沒有任何區別,最佳和最壞情況下的複雜度都消耗了n

2n^2

n2(o(n

2n^2

n2))的數量級。選擇排序比氣泡排序快。

氣泡排序和選擇排序的主要區別

在氣泡排序中,如果需要,每個元素及其相鄰元素都會進行比較和交換。另一方面,選擇排序通過選擇元素並將該特定元素與最後乙個元素交換來工作。所選元素可以是最大的,也可以是最小的,具體取決於公升序或降序。

兩種演算法的最壞情況複雜度相同,即o(n

2n^2

n2),但最佳複雜度不同。氣泡排序使用n個時間順序,而選擇排序使用n

2n^2

n2個時間順序。

氣泡排序是一種穩定的演算法,而選擇排序是不穩定的。

選擇排序演算法是快速和有效的,相比而言,氣泡排序是非常緩慢和低效的。 結論

氣泡排序演算法被認為是最簡單、最低效的演算法,而選擇排序演算法比氣泡排序演算法效率更高。氣泡排序還需要額外的空間來儲存臨時變數,並且需要更多的交換。

參考文件

[1]techdifferences.com.difference between bubble sort and selection sort[eb/ol].

[2]baidu.排序演算法穩定性[eb/ol].排序演算法穩定性/9763250,2020-04-13.

排序 氣泡排序和選擇排序

目錄 氣泡排序 氣泡排序原理圖 demo 執行 選擇排序 氣泡排序原理圖 demo 執行 說明 include include using namespace std name 氣泡排序法 number 傳入陣列 length 陣列長度 setw 需要匯入 include ps 這是乙個lib.h的...

選擇排序和氣泡排序

選擇排序和氣泡排序 演算法 蠻力法選擇排序,第一次掃瞄整個陣列,找到最小元素,然後和第乙個元素交換。第二次從第二個元素開始掃瞄陣列,找到剩下的元素中最小的與第二個元素交換位置,直到最後。89 45 68 90 29 3417 17 45 68 902934 89 17 29 68 90 453489...

選擇排序和氣泡排序

選擇 從小到大排序 int a 5 a 0 a 1 a 2 a 3 a 4 5 4 3 2 1 1 5 4 3 2 第一輪比較 拿a 0 和後面的元素依次比較 如果a 0 a i 那麼兩個數交換 1 2 5 4 3 第二輪比較,拿a 1 和後面的元素依次比較,如果a 1 a i 那麼兩個數交換 1 ...