氣泡排序原理即:從陣列下標為0的位置開始,比較下標位置為0和1的資料,如果0號位置的大,則交換位置,如果1號位置大,則什麼也不做,然後右移乙個位置,比較1號和2號的資料,和剛才的一樣,如果1號的大,則交換位置,以此類推直至最後乙個位置結束,到此陣列中最大的元素就被排到了最後,之後再根據之前的步驟開始排前面的資料,直至全部資料都排序完成。
public static int bubbersort(int nums)}}
return nums;
}
選擇排序原理即:在選擇排序中,不再只比較兩個相鄰的資料。因此需要記錄下某乙個資料的下標,進行選擇排序就是把所有的資料掃瞄一遍,從中挑出(按從小到大排序)最小的乙個資料,這個最小的資料和最左端下標為0的資料交換位置。之後再次掃瞄資料,從下標為1開始,還是挑出最小的然後和1號位置進行交換,這個過程一直持續到所有的資料都排定。而程式中需要有乙個標識變數來標識每次挑出最小資料的下標。
public static int selectsort(int nums)}}
return nums;
}
(1)氣泡排序是比較相鄰位置的兩個數,而選擇排序是按順序比較,找最大值或者最小值;
(2)氣泡排序每一輪比較後,位置不對都需要換位置,選擇排序每一輪比較都只需要換一次位置;
(3)氣泡排序是通過數去找位置,選擇排序是給定位置去找數;
氣泡排序優缺點:優點:比較簡單,空間複雜度較低,是穩定的;
缺點:時間複雜度太高,效率慢;
選擇排序優缺點:優點:一輪比較只需要換一次位置;
缺點:效率慢,不穩定(舉個例子5,8,5,2,9 我們知道第一遍選擇第乙個元素5會和2交換,那麼原序列中2個5的相對位置前後順序就破壞了)。
選擇排序和氣泡排序一樣執行了 o(n2)時間。但是,選擇排序無疑更快,因為它進行的交換少得多。
排序 氣泡排序和選擇排序
目錄 氣泡排序 氣泡排序原理圖 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 ...