2. 改進氣泡排序
3. 雞尾酒排序
氣泡排序(bubble sort)是一種簡單的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果它們的順序錯誤就把它們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交換慢慢「浮」到數列的頂端。
1.比較相鄰的元素。如果第乙個比第二個大,就交換它們兩個;
2.對每一對相鄰元素作同樣的工作,從開始第一對到結尾的最後一對,這樣在最後的元素應該會是最大的數;
3.針對所有的元素重複以上的步驟,除了最後乙個;
4.重複步驟1~3,直到排序完成。
}1.新增乙個標誌位記錄這一趟冒泡是否交換,若沒有,則可以停止交換。
2.新增乙個標誌位置記錄這一趟最後交換的位置,下一趟冒泡到這裡可以停止。
template
void
bubblesort_e1
(t* begin, t* end)}if
(!flag)
}}
template
void
bubblesort_e2
(t* begin, t* end)}}
}
雞尾酒排序,也叫定向氣泡排序,是氣泡排序的一種改進。此演算法與氣泡排序的不同處在於從低到高然後從高到低,而氣泡排序則僅從低到高去比較序列裡的每個元素。他可以得到比氣泡排序稍微好一點的效能。
template
void
bubblesort_e3
(t* begin, t* end)
} right--
;for
(i = right; i > left;
--i)
} left++;}
}
排序演算法 1 氣泡排序
氣泡排序是非常容易理解和實現,以從小到大排序舉例 設陣列長度為n。1 比較相鄰的前後二個資料,如果前面資料大於後面的資料,就將二個資料交換。2 這樣對陣列的第0個資料到n 1個資料進行一次遍歷後,最大的乙個資料就 沉 到陣列第n 1個位置。3 n n 1,如果n不為0就重複前面二步,否則排序完成。冒...
排序演算法1 氣泡排序
氣泡排序 public class bubblesort int arr 交換變數 int temp 判斷上一次是否進行了排序,若上次沒有進行排序,證明排序已經提前完成,可提前跳出迴圈,結束排序 boolean flag false for int i 0 i arr.length 1 i if f...
排序演算法1 氣泡排序
1.什麼是氣泡排序 氣泡排序 bubble sort 也是一種簡單直觀的排序演算法。它重複地走訪過要排序的數列,一次比較兩個元素,如果他們的順序錯誤就把他 們交換過來。走訪數列的工作是重複地進行直到沒有再需要交換,也就是說該數列已經排序完成。這個演算法的名字由來是因為越小的元素會經由交 換慢慢 浮 ...