氣泡排序和改進版

2022-04-08 07:03:01 字數 1093 閱讀 4644

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邊同時進行排序,保證每次第一位是最小值,最後一位是...