1.下面我們來說以下氣泡排序的原理
(1)比較相鄰的元素。如果前乙個元素比後乙個元素大,就交換這兩個元素的位置。
(2)對每一對相鄰元素做同樣的工作,從開始第一對元素到結尾的後一對元素。終後位置的元素就是大值。
例如:排序前:
排序後:
2.下面關氣泡排序的**
第一版氣泡排序
public
class
bubble}}
}}
從第一版氣泡排序中我們可以看出有弊端,在第五次進行完畢後,陣列已經有序,可是還是進行了一輪排序,我們可以對他進行改進。
第二版氣泡排序
public
class
bubble}if
(issorted)}}
}
從第二版中我們雖然有了優化,不過效能還沒有改變,我們還可以接著優化
第三版氣泡排序
public
class
bubble
} sosortborder=lastexchangeindex;
if(issorted)}}
}
以上三版已經優化的差不多了,不過還有一些特殊的情況,所以我們來看一下第四版**。
第四版氣泡排序
public
class
bubble
}//偶數輪之前,改標記,從右向左比較
氣泡排序改進版
普通的氣泡排序的演算法的平均時間複雜度為o n 2 通過對一些特殊情況的研究,我們得出了這個改進版的氣泡排序,所以它的時間複雜度是 沒錯,還是o n 2 否則就叫不叫氣泡排序早就改名了 氣泡排序的時間消費主要是在比較以及交換的次數上,每一趟冒泡都會將當前序列最大的數 冒 到序列的最後,然後序列縮小乙...
排序 氣泡排序及其改進版本
選擇排序是符合直觀 我們通常的做法 的排序方法,氣泡排序是計算機科學家的智慧型。def bubble sort l n len l for in range n for i in range n 1 if l i l i 1 l i l i 1 l i 1 l i 原始的氣泡排序演算法中,共兩層迴圈...
選擇排序 含改進版
選擇排序 第乙個元素和後面的所有元素進行比較,最小值出現在前面 public static void sortbymin int intarr system.out.println 交換次數 j 結果 arrays.tostring intarr 2邊同時進行排序,保證每次第一位是最小值,最後一位是...