java排序之氣泡排序

2021-08-29 07:37:16 字數 1143 閱讀 1230

假設一籃球隊,成一佇列排列在籃球場上,每個人的身高都不相同,這樣的話就會成下面這種

現在呢,要對他們以身高進行排列讓他們成下面這種情況

採用氣泡排序的方式歷程如下:熊佇列的最左邊第一位(簡稱左一)起,讓他與最左邊第二位(左二)進行比較,如果左一的身高高於左二,那麼讓左一與左二調換位置;接下來對比左二與左三,如果左二的身高比左三高,那麼調換左二與左三的位置,一下以此類推直到左n-1與左n對比,那麼第一輪過去,就可以把最高的隊員排列在隊伍的最右邊;接下來在從左一開始與左二對比,左二與做三對比,依次類推;由於第一輪對比的時候呢隊伍最高的隊員已經排列在最右邊,那麼這一輪對比就可以不用比較最右邊那一位,那麼第二輪就可以找到第二高的人排列在隊伍的右二位!依次從左一左二對比,迴圈下來直到隊伍的最後一位是排列在左一!這樣的比較總是會「冒泡」出當前沒有排列的最高隊員,這就是被稱為氣泡排序的原因。

下面,上**:

public class bubblesort

public void insert(long value)

public void display()

system.out.println("");

}public void swap(int one , int two)

其中核心的**只有四行:

for (out = nelems; out < nelems - 1 ; out--) }}

這個演算法的思路是將最小的資料項放在陣列最開始的位置下標為0,並將最大的資料項放在最右邊位置下標nelems - 1。外層for迴圈的計數器從nelems - 1開始,每經過一次迴圈就會減1,下標大於out的資料都是排好順序的。變數out每完成一次內部迴圈的時候(in)往左移一位,因此演算法中就不在處理右邊排好佇列的人了。

swap方法只是用來執行交換資料的操作。

氣泡排序的效率:

一般來說,陣列中有n個資料,那麼第一輪比較就會進行n-1次對比,第二輪有n-2次比較,以此類推。那麼比較結束一共比較了(n-1)+(n-2)+(n-3)+.......+1 =n*(n-1)/2

java之氣泡排序

1 什麼是氣泡排序?網上查了點資料,也沒有找到什麼有用的概念,大致的意思都是 相鄰的兩個數兩兩做比較。根據相應的規則 比較大的往後放或比較小的往後放 放置兩數的位置 規則 大的數往後靠 比較前 2,1 比較後 1,2 2 實戰 假設有這樣乙個陣列 int arr 氣泡排序是這樣排的 規則 小的往後靠...

Java之氣泡排序

氣泡排序,從字面上理解,冒泡的話,可以想象魚在水裡吐泡泡,越接近水面的泡泡越大,越遠離水面的泡泡越小,那麼氣泡排序也就是乙個種從小到大的排序。氣泡排序的原理 比較相鄰的兩個數,將值大的交換值右端 每次都比較相鄰的兩個數,在第一輪之後,最大的值就到了最右端,那麼第二輪就可以少一次比較,因為在第一輪最大...

Java之氣泡排序

直接上傳氣泡排序 public class sort bubblesort array for object obj array public static void bubblesort int array 時間複雜度 平均情況o n 2 最好情況o n 最壞情況o n 2 空間複雜度 o 1 穩...