排序算法-冒泡排序(Java實現)

冒泡排序(Bubble Sort)是啥?

來源百度百科:
冒泡排序是一種簡單的排序算法。它重複地走訪過要排序的元素列,依次比較兩個相鄰的元素,如果他們的順序(如從大到小、首字母從A到Z)錯誤就把他們交換過來。走訪元素的工作是重複地進行直到沒有相鄰元素需要交換,也就是說該元素已經排序完成。

通俗理解

簡單的說,如果我們想將一個數組從小到大排列,我們可以這樣做:
1.首先可以將數組的最大值移動到最後面。
2.再將次大值移動到倒數第二位。
3.以此類推,直到將所有數排列好。

那冒泡排序是怎麼實現上述操作的呢?我們來看下算法描述

算法描述

假設我們有數組arr,j從0開始
1.比較arr[j]和arr[j+1],使這兩元素中較大的元素放在排在後面,j++。
2.重複第一步操作(arr[0]和arr[1],arr[1]和arr[2]…)從第一對到最後一對。這步做完後,最大的數就移動到數組末尾了。
3.對所有的元素重複上面的步驟,直到所有數都排好序。

動圖演示

圖片來源網絡,侵刪

代碼實現

public class BubbleSort {
public static void main(String[] args) {
	int[] arr = new int[] { 2, 8, 7, 9, 4, 1, 5, 0 };
	bubbleSort(arr);
}

public static void bubbleSort(int[] arr) {
	//控制多少輪
	for (int i = 1; i < arr.length; i++) {
	//控制每一輪的次數
		for (int j = 0; j <= arr.length -1 - i; j++) {
			if (arr[j] > arr[j + 1]) {
			//兩數交換位置
				int temp;
				temp = arr[j];
				arr[j] = arr[j + 1]; 
				arr[j + 1] = temp;
			}
		}
	}
	System.out.println(Arrays.toString(arr));

	}
}

本篇完,文章如果有錯誤的地方歡迎大家指正!
我的公衆號:Java小部落(公衆號的排版好看一點~)

我的個人博客

發佈了18 篇原創文章 · 獲贊 30 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章