演算法入門 java語言實現的氣泡排序小結

2021-07-27 23:17:19 字數 2417 閱讀 2462

public

class

bubblesort

}

}*/

//採用冒泡演算法,最外層從第乙個元素開始迴圈

for(

inti =0

;i <

len;

i++)

}

}

}

public

static

void

main

(string

args

);

sort

(src

);

for(

inti

:src

)

}

}

時間複雜度:

最好的時間複雜度(正序):o(n) :(好像是改進過的)。

最差的時間複雜度(反序):o(n^2):

比較次數:(n-1)+(n-2)+(n-3)+....+2+1 也就是

o(n^2).

移動次數:3*比較次數,最壞的情況. 也就是o(n^2)。

10000

name

:氣泡排序

1花費了

=183ms

name

:氣泡排序

2花費了

=36ms

name

:氣泡排序

3花費了

=29ms

name

:氣泡排序

4花費了

=169ms

name

:氣泡排序

5花費了

=31ms

平均大概是

89

50000

name

:氣泡排序

1花費了

=5090ms

name

:氣泡排序

2花費了

=833ms

name

:氣泡排序

3花費了

=757ms

name

:氣泡排序

4花費了

=5125ms

name

:氣泡排序

5花費了

=744ms

平均

2509

100000

name

:氣泡排序

1花費了

=20694ms

name

:氣泡排序

2花費了

=3338ms

name

:氣泡排序

3花費了

=3120ms

name

:氣泡排序

4花費了

=20862ms

name

:氣泡排序

5花費了

=3103ms

平均:

10223

可以看出來和選擇排序排序哪一張對比(在相同條件下做出的測試):

1、平均時間都比選擇排序用時要長,這是由於氣泡排序交換的次數遠比選擇排序多,而比較次數則一樣。

2、氣泡排序的時間波動相對來說比較大,和隨機數組的原本排序有關。如果原本順序比較好,那麼氣泡排序就

不需要太多的交換,那麼速度會快很多。而相對插入排序,每次都的遍歷完所有的未排序的序列,所以時間

也是相對很穩定的。

穩定性:穩定。

如果兩個元素相等,我想你是不會再無聊地把他們倆交換一下的;如果兩個相等的元素沒有相鄰,那麼即使通過

前面的兩兩交換把兩個相

鄰起來,這時候也不會交換,所以相同元素的前後順序並沒有改變,所以氣泡排序是一種穩

定排序演算法。

C語言實現冒泡演算法

打算認真研究演算法,所以,把這些基本演算法都寫出來,練練手。部分內容引用 坐在馬桶上看演算法2 冒泡演算法特徵 每次迴圈只能讓乙個資料排到正確的位置上。因此,n個資料的排序,必須執行n 1次迴圈 讓n 1個資料排到正確位置上,剩下的那個自然是最小的,排在最後,不用迴圈 include int mai...

正宗冒泡法 java語言實現

冒泡法的思想就是 小的不停地 向前跑 大的不停地 向後 冒。如下 public class main system.out.println 排序前 print a bubblesort a system.out.println system.out.println 排序後 print a publi...

氣泡排序演算法C語言實現

氣泡排序 bubblesort 的基本概念是 依次比較相鄰的兩個數,將小數放在前面,大數放在後面。即在第一趟 首先比較第1個和第2個數,將小數放前,大數放後。然後比較第2個數和第3個數,將小數放前,大數放後,如此繼續,直至比較最後兩個數,將小數放前,大數放後。至此第一趟結束,將最大的數放到了最後。在...