Java冒泡排序(Bubble Sort)實(shí)例講解
舉個(gè)例子:int[] array = {2,4,9,7,6,5};
第一輪2和4進(jìn)行比較,2<4,位置不變。再4和9進(jìn)行比較,4<9,位置不變。再9和7進(jìn)行比較,9>7,9和7的位置互換。再9和6進(jìn)行比較,9>6,9和6的位置互換。再9和5進(jìn)行比較,9>5,位置互換。第一輪比較的結(jié)果就是2 4 7 6 5 9。
第二輪2和4進(jìn)行比較,2<4,位置不變。再4和7進(jìn)行比較,4<7,位置不變。再7和5進(jìn)行比較,7>6,7和6的位置互換。再7和5進(jìn)行比較,7>5,7和5的位置互換。第二輪的結(jié)果就是2 4 6 5 7 9。
第三輪2和4進(jìn)行比較,2<4,位置不變。再4和6進(jìn)行比較,4<6,位置不變。再6和5進(jìn)行比較,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;
}
}
//如果當(dāng)輪沒(méi)有發(fā)生位置變化,說(shuō)明已經(jīng)排序完畢,就沒(méi)有必要再進(jìn)行判斷了
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返回圖片流的實(shí)現(xiàn)示例
本文主要介紹了springboot返回圖片流的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-08-08java數(shù)組復(fù)制的四種方法效率對(duì)比
這篇文章主要介紹了java數(shù)組復(fù)制的四種方法效率對(duì)比,文中有簡(jiǎn)單的代碼示例,以及效率的比較結(jié)果,具有一定參考價(jià)值,需要的朋友可以了解下。2017-11-11springboot?使用clickhouse實(shí)時(shí)大數(shù)據(jù)分析引擎(使用方式)
這篇文章主要介紹了springboot?使用clickhouse實(shí)時(shí)大數(shù)據(jù)分析引擎的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2022-02-02Java synchronized關(guān)鍵_動(dòng)力節(jié)點(diǎn)Java學(xué)院整理
在java中,每一個(gè)對(duì)象有且僅有一個(gè)同步鎖。這也意味著,同步鎖是依賴于對(duì)象而存在。下面通過(guò)本文給大家介紹synchronized原理 及基本規(guī)則,感興趣的朋友一起學(xué)習(xí)吧2017-05-05

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