氣泡排序 bubble sort 原理及演示

2021-09-26 18:40:32 字數 1650 閱讀 7301

氣泡排序(bubble sort),是一種電腦科學領域的較簡單的排序演算法。它重複地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果他們的順序錯誤就把他們交換過來。走訪元素的工作是重複地進行直到沒有相鄰元素需要交換,也就是說該元素列已經排序完成。這個演算法的名字由來是因為越大的元素會經由交換慢慢「浮」到數列的頂端,就如同碳酸飲料中二氧化碳的氣泡最終會上浮到頂端一樣,所以起名為「氣泡排序」。

數值之間的交換

首先再聊氣泡排序之前,我們先聊一聊數值之間的交換。在我們日常生活中想要進行交換的話僅僅在兩個個體之間就可以進行,但是在計算機中就不一樣了,舉個例子:

int a=1;

int b=2;

//如果我想把讓a和b的數值進行交換

a=b;

b=a;// 結果: a=2 , b=2;

結果顯然是錯誤的。原因在於上述操作是分別把1和2賦值給a和b,然後把b的2再複製給a 此時a的值就變成2了,最終的結果就會變成a和b都變成了2。

正確的做法為:

int a=1;

int b=2;

//還需要乙個中間量,做乙個轉換的容器

int c;

c=a;

a=b;

b=c;

//結果為: a=2 ,b=1

這就是變數進行交換的方法,方法中就是用到了乙個中間可以進行儲存資料的容器做乙個中轉站。

此外在了乙個另外兩種變數交換的方法。

1)變數加減的方法:

int a=1;

int b=2;

a=a+b;

b=a-b;

a=a-b;

//結果為 a=2 ,b=1;

2)變數乘除的方法:

int a=1;

int b=2;

a=a*b;

b=a/b;

a=a/b;

此外還有很多方法都可以進行變數之間的資料轉換,但都不太常用不推薦使用。

氣泡排序的原理

回歸主體我們來聊氣泡排序的原理,為了方便解釋說明,我們就聊氣泡排序公升序的這種情況。

1)比較相鄰的元素。如果第乙個比第二個大,就交換他們兩個。

2)對每一對相鄰元素做同樣的事,從開始第一對到結尾的最後一對。在這一點,最後的元素應該會是最大的數。

3)針對所有的元素重複以上的步驟,除了最後乙個,簡單的說就是先用第乙個數進行排序比較

也就是說進行第一輪比較,比較完後進行第二輪從第二個數來時進行比較此時比較次數減1,往後一次類推。

4)針對所有的元素重複以上的步驟,除了最後乙個。

下面我們一**的方式進行演示,隨機用5個整數型別的數值16,9,25,90,41。

public

static

void

main

(string[

] args)

;int alt=0;

for(

int i=

0;i1;i++)}

system.out.

println

(arrays.

tostring

(nums));

}

出來的結果為:[9, 16, 25, 41, 90]

氣泡排序 bubble sort

氣泡排序是最基本的排序演算法,常被做為內部排序的第乙個排序演算法進行講解。它的原理非常簡單,只是一 個兩層迴圈,每次將最大或最小的放到陣列最後。演算法如下 b為陣列的起始位置,e為陣列的結果位置 int bubble int data,int b,int e return n 這個函式返回兩個整數比...

氣泡排序(Bubble Sort)

無論你學習哪種程式語言,在學到迴圈和陣列時,通常都會介紹一種排序演算法來作為例子,而這個演算法一般就是氣泡排序。並不是它的名稱很好聽,而是說這個演算法的思路最簡單,最容易理解。因此,哪怕大家可能都已經學過氣泡排序了,我們還是從這個演算法開始我們的排序之旅。氣泡排序 bubble sort 一種交換排...

氣泡排序 Bubble Sort

維基百科 氣泡排序 演算法思想 不斷的交換相鄰的兩個反序元素,使最小元素 上浮 或使最大元素 下沉 每一趟 冒泡 都會確定乙個最大的元素或最小的元素,同選擇排序類似,演算法總共只需進行n 1趟。將乙個陣列豎著放,低位址在上面,高位址在下面,所謂 上浮 就是較小的元素不斷向低位址靠近,所謂 下沉 就是...