日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

java冒泡排序经典代码_Java干货分享:冒泡排序(Java中@)

發布時間:2023/12/19 综合教程 32 生活家
生活随笔 收集整理的這篇文章主要介紹了 java冒泡排序经典代码_Java干货分享:冒泡排序(Java中@) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

不管學習什么編程語言,冒泡排序都是每一個走上IT路的小伙伴的必經之路。但是還有好多小伙伴對冒泡排序摸不著頭腦,今天知了堂小編就來分享一下經典算法——冒泡排序。

首先咱們舉個金魚吐泡泡的例子來理解冒泡排序的過程:金魚吐出的一連串泡泡就是我們要排序的數據,數據就像泡泡浮上水面一樣一個一個被排好序,吐出的泡泡越大就會越快浮出水面,相應的,數據里某一個數字越大,那么就能越快的被排好序,當然最大的數字也是第一個被排好順序的。

但是冒泡排序究竟是怎么比較數字的大小來排序的呢?其實冒泡排序的原理很簡單,把兩個挨在一起的數字進行比較大小,大數放在后面,較小的數放在前面。每遍歷一次數據,就將一個最大的數放在整個數據的末尾,當遍歷結束后,整個數據就被排好了序。

有小伙伴看到這里或許會問了:“怎么知道冒泡排序要遍歷多少遍呢?”咱們還是根據冒泡排序的原理來判斷,每兩個數字就要比較一次,那么三個數字就要比較兩次,依次排下去可以得到一個結論:如果一個數據有n個元素,那么冒牌排序就需要對數據遍歷n-1次。

接下來咱們假設有一串數字需要從小到大排序,給大家用數據和圖片演示一次。以下圖的數據為例,可以得知5個數字需要遍歷4次。

第一次遍歷:(1)17與5比較,17>5,這時最大的數是17,那么17與5交換;(2)17與20比較,17<20,此時最大的數變成了20,20與17交換;(3)20與8比較,20>8,20與8交換;(4)20與11比較,20>11,20與11交換。因此,第一次遍歷后得到最大數為20,排序結果為下圖。

由于第一次遍歷時,最大值20已經排在末尾,因此在第二次遍歷時,就不需要再比較20。

第二次遍歷:(1)5與17比較,5<17,最大值為17,順序不變;(2)17與8比較,17>8,17與8交換;(3)17與11比較,17>11,17與11交換。第二次遍歷后得到此次遍歷中的最大值17,的結果為下圖。

經過兩次遍歷后,我們發現數據的順序已經按由大到小排序了,但是計算機并不知道,所以之后的兩次遍歷依舊會按照剛才的排序方法進行,但是沒有數字會改變位置,直到遍歷結束。

小伙伴們也可以看看下面的動圖,讓思路更加清晰。

根據上面咱們分享的冒泡排序的過程,可以總結出以下在使用冒泡排序時需要注意的地方:

1、 有n個數,就需要進行n-1次遍歷。

2、 每一次遍歷都是一個循環,由于每次遍歷都需要將數據兩兩比較,因此在大循環下還有一個小循環。

3、 在每一次遍歷結束之后,都會找到一個當前的最大值,這個最大值在結束遍歷時的位置是固定的,因此接下來的遍歷不需要再比較這個最大值,所以每個小循環的次數都會比上一次小循環的次數-1。

相信小伙伴們已經懂得了冒泡排序的原理和排序邏輯,那么下面用代碼給小伙伴們分享Java代碼是如何實現冒泡排序的。

public class BubbleSort {
	public  static void bubbleSort(int[] arr) {
		if (arr==null||arr.length==1) 
			return;
		for (int i = 0; i < arr.length-1; i++) {
			boolean isSorted=true;
			for (int j = 0; j < arr.length-i-1; j++) {
				if(arr[ j ]>arr[ j+1 ]) {
					int temp=arr[ j ];
					arr[ j]=arr[ j+1];
					arr[ j+1]=temp;
					isSorted=false;
				}
			}
		if(isSorted)
			return;
		System.out.print("第"+(i+1)+"次遍歷結果:");
		print(arr);
		}
	}
	public static void main(String[] args) {
		int[] arr= {17,5,20,8,11};
		System.out.print("排序前的順序為:");
		print(arr);
		bubbleSort(arr);
		System.out.print("排序后的順序為:");
		print(arr);
	}
	private static void print(int[] arr) {
		if (arr==null)
			return;
		for (int i :arr) {
			System.out.print(i+" ");
		}
		System.out.println();
	}
}

看完之后是不是覺得冒泡排序一下就變得簡單了?今天的分享就到這里了,想獲取更多Java干貨和行業知識,關注我們哦~

總結

以上是生活随笔為你收集整理的java冒泡排序经典代码_Java干货分享:冒泡排序(Java中@)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。