基礎排序氣泡排序(很詳細!!)

2021-09-17 23:29:25 字數 1645 閱讀 2628

氣泡排序:

首先冒牌排序是比較基礎的排序,

所有排序的基礎都是氣泡排序,其他的就是修修**,變變邏輯

氣泡排序適用於數字比較少的情況,數字多了就效率就很低

演算法思想:

把最小值或最大值像泡泡一樣的每一次冒到最後乙個去

1、一共會比較陣列元素個數減1輪 2、每一輪,比較次數比上一輪少1

3、如果前面乙個陣列元素大於/小於後面乙個數字,則交換

比如:16 25 9 90 23 個數字 從大到小排序

16先和25比如比較,如果16比25小就交換,接著16和9比,9小不需要交換,泡泡到了9,9和90比,交換,

9再和23比較,再換,可以看出第一輪比較結束時最小值到了最後,比較了(i - 1)4次,同理第二次比較

(i - 2)3次,第三次比較(i - 3)2次,第四次比較(i-4)1次

陣列元素為nums.length = 5

i = 0 j = 4 j = 5 - 1 - i

i = 1 j = 3 j = 5 - 1 - i i表示比較輪數,j表示1輪比較的次數

i = 2 j = 2 j = 5 - 1 - i

i = 3 j = 1 j = 5 - 1 - i

for (int i = 0; i < nums.length - 1; i++) ;

scanner input =

newscanner

(system.in)

;final

int n =10;

int[

] nums =

newint

[n];

system.out.

println

("排序前:");

// for (int i = 0; i < nums.length; i++)

// system.out.println();

for(

int i =

0; i < nums.length; i++

)//long starttime = system.currenttimemillis();

for(

int i =

0; i < nums.length; i++

) system.out.

println()

;int temp;

//用於交換的臨時變數

for(

int i =

0; i < nums.length -

1; i++)}

}//long endtime = system.currenttimemillis();

//列印結果

system.out.

println

("排序後:");

for(

int i =

0; i < nums.length; i++

) system.out.

println()

; + "毫秒");

氣泡排序 排序 氣泡排序

既然寫了計組思來想去便打算把資料結構也寫下來,寫的時候總是發現看的時候無法發現的問題,受益良多。交換排序的基本思想 exchange until sorted 順序,分支,迴圈 注意偽 的熟悉 下面介紹兩種交換演算法 首先進行聯想,用乙個圖進行輔助聯想 水冒泡過程 頂部是陣列的begin,底部理解為...

HTML基礎(適合入門,很詳細,很詳細,很詳細)

概念 是最基礎的網頁開發語言 標記語言 快速入門 title red hello world green hello world 標籤學習 檔案標籤 構成html最基本的標籤 文字標籤 和文字有關的標籤 p 段落標籤 br 換行標籤 hr 展示一條水平線 b 字型加粗 i 字型斜體 font 字型標...

基礎排序演算法一 氣泡排序

氣泡排序 bubble sort 又被稱為氣泡排序或泡沫排序。它是一種較簡單的排序演算法。它會遍歷若干次要排序的數列,每次遍歷時,它都會從前往後依次的比較相鄰兩個數的大小 如果前者比後者大,則交換它們的位置。這樣,一次遍歷之後,最大的元素就在數列的末尾!採用相同的方法再次遍歷時,第二大的元素就被排列...