Java冒泡排序(Bubble Sort)實例講解
舉個例子:int[] array = {2,4,9,7,6,5};
第一輪2和4進行比較,2<4,位置不變。再4和9進行比較,4<9,位置不變。再9和7進行比較,9>7,9和7的位置互換。再9和6進行比較,9>6,9和6的位置互換。再9和5進行比較,9>5,位置互換。第一輪比較的結(jié)果就是2 4 7 6 5 9。
第二輪2和4進行比較,2<4,位置不變。再4和7進行比較,4<7,位置不變。再7和5進行比較,7>6,7和6的位置互換。再7和5進行比較,7>5,7和5的位置互換。第二輪的結(jié)果就是2 4 6 5 7 9。
第三輪2和4進行比較,2<4,位置不變。再4和6進行比較,4<6,位置不變。再6和5進行比較,6>5,6和5的位置互換。第三輪的結(jié)果是2 4 5 6 7 9(已經(jīng)是我們想要的結(jié)果了)。
代碼如下:
package com.test;
public class BubbleSortTest
{
public static void main(String[] args)
{
int[] array = {2,4,9,7,6,5};
BubbleSortTest bst = new BubbleSortTest();
bst.bubbleSort(array);
}
public int[] bubbleSort(int[] array)
{
for(int i=0;i<array.length-1;i++)
{
boolean bl = true;
for(int j=0;j<array.length-1-i;j++)
{
if(array[j] > array[j+1])
{
bl = false;
int temp = array[j];
array[j] = array[j+1];
array[j+1] = temp;
}
}
//如果當輪沒有發(fā)生位置變化,說明已經(jīng)排序完畢,就沒有必要再進行判斷了
if(bl)
{
break;
}
/*--觀看結(jié)果的代碼,可以忽略---------------------*/
System.out.println("第" + (i + 1) + "趟排序");
for(int k = 0; k < array.length; k++)
{
System.out.print(array[k] + " ");
}
System.out.println();
/*-------------------------------------*/
}
return array;
}
}
相關(guān)文章
springboot?使用clickhouse實時大數(shù)據(jù)分析引擎(使用方式)
這篇文章主要介紹了springboot?使用clickhouse實時大數(shù)據(jù)分析引擎的方法,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習或工作具有一定的參考借鑒價值,需要的朋友參考下吧2022-02-02Java synchronized關(guān)鍵_動力節(jié)點Java學(xué)院整理
在java中,每一個對象有且僅有一個同步鎖。這也意味著,同步鎖是依賴于對象而存在。下面通過本文給大家介紹synchronized原理 及基本規(guī)則,感興趣的朋友一起學(xué)習吧2017-05-05

SpringBoot實現(xiàn)自定義指標監(jiān)控功能