真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

冒泡排序代碼java講解 java冒泡排序簡(jiǎn)單代碼

冒泡排序如何使用Java語(yǔ)言完成?

冒泡排序的原理:

創(chuàng)新互聯(lián)為您提適合企業(yè)的網(wǎng)站設(shè)計(jì)?讓您的網(wǎng)站在搜索引擎具有高度排名,讓您的網(wǎng)站具備超強(qiáng)的網(wǎng)絡(luò)競(jìng)爭(zhēng)力!結(jié)合企業(yè)自身,進(jìn)行網(wǎng)站設(shè)計(jì)及把握,最后結(jié)合企業(yè)文化和具體宗旨等,才能創(chuàng)作出一份性化解決方案。從網(wǎng)站策劃到成都網(wǎng)站制作、成都網(wǎng)站設(shè)計(jì), 我們的網(wǎng)頁(yè)設(shè)計(jì)師為您提供的解決方案。

從第一個(gè)元素開始,將相鄰的兩個(gè)元素依次進(jìn)行比較,直到最后兩個(gè)元素完成比較。如果前一個(gè)元素比后一個(gè)元素大,則交換它們的位置。整個(gè)過程完成后最后一個(gè)元素就是最大值,完成第一輪比較,后邊通過for循環(huán)依次完成后續(xù)比較。

運(yùn)行代碼如下:

package day01;

public class 冒泡 {

public static void main(String[] args) {

int []arr=new int[] {12,45,33,46,3};

System.out.println("排序之前的元素順序:");

for(int i=0;iarr.length;i++)

{

System.out.print(arr[i]+" ");

}

int t;

for(int j=0;jarr.length-1;j++)

{

for(int x=0;xarr.length-1;x++)

{

if(arr[x]arr[x+1])

{

t=arr[x];

arr[x]=arr[x+1];

arr[x+1]=t;

}

}

}

System.out.println();

System.out.println("排序之后的元素順序:");

for(int k=0;karr.length;k++)

{

System.out.print(arr[k]+" ");

}

}

}

運(yùn)行結(jié)果截圖:

擴(kuò)展資料:

(1)冒泡排序每一輪把一個(gè)最大的元素放在數(shù)組的最后

(2)如果想要實(shí)現(xiàn)倒敘比較輸出可以把代碼判斷大小的部分改為下邊代碼即可。

if(arr[x]arr[x+1])

{

t=arr[x];

arr[x]=arr[x+1];

arr[x+1]=t;

}

(3)使用知識(shí)點(diǎn):數(shù)組length的使用,數(shù)組的定義,for循環(huán)的嵌套。

JAVA 冒泡排序法的詳細(xì)解釋是什么?

冒泡排序的英文Bubble Sort,是一種最基礎(chǔ)的交換排序。

大家一定都喝過汽水,汽水中常常有許多小小的氣泡,嘩啦嘩啦飄到上面來。這是因?yàn)榻M成小氣泡的二氧化碳比水要輕,所以小氣泡可以一點(diǎn)一點(diǎn)向上浮動(dòng)。而我們的冒泡排序之所以叫做冒泡排序,正是因?yàn)檫@種排序算法的每一個(gè)元素都可以像小氣泡一樣,根據(jù)自身大小,一點(diǎn)一點(diǎn)向著數(shù)組的一側(cè)移動(dòng)。

冒泡排序算法的原理如下:

比較相鄰的元素。如果第一個(gè)比第二個(gè)大,就交換他們兩個(gè)。

對(duì)每一對(duì)相鄰元素做同樣的工作,從開始第一對(duì)到結(jié)尾的最后一對(duì)。在這一點(diǎn),最后的元素應(yīng)該會(huì)是最大的數(shù)。

針對(duì)所有的元素重復(fù)以上的步驟,除了最后一個(gè)。

持續(xù)每次對(duì)越來越少的元素重復(fù)上面的步驟,直到?jīng)]有任何一對(duì)數(shù)字需要比較。

具體如何來移動(dòng)呢?讓我們來看一個(gè)栗子:

請(qǐng)點(diǎn)擊輸入圖片描述

請(qǐng)點(diǎn)擊輸入圖片描述

有8個(gè)數(shù)組成一個(gè)無(wú)序數(shù)列:5,8,6,3,9,2,1,7,希望從小到大排序。按照冒泡排序的思想,我們要把相鄰的元素兩兩比較,根據(jù)大小來交換元素的位置,過程如下:

首先讓5和8比較,發(fā)現(xiàn)5比8要小,因此元素位置不變。

接下來讓8和6比較,發(fā)現(xiàn)8比6要大,所以8和6交換位置。

請(qǐng)點(diǎn)擊輸入圖片描述

請(qǐng)點(diǎn)擊輸入圖片描述

請(qǐng)點(diǎn)擊輸入圖片描述

請(qǐng)點(diǎn)擊輸入圖片描述

繼續(xù)讓8和3比較,發(fā)現(xiàn)8比3要大,所以8和3交換位置。

請(qǐng)點(diǎn)擊輸入圖片描述

請(qǐng)點(diǎn)擊輸入圖片描述

請(qǐng)點(diǎn)擊輸入圖片描述

請(qǐng)點(diǎn)擊輸入圖片描述

繼續(xù)讓8和9比較,發(fā)現(xiàn)8比9要小,所以元素位置不變。

接下來讓9和2比較,發(fā)現(xiàn)9比2要大,所以9和2交換位置。

請(qǐng)點(diǎn)擊輸入圖片描述

請(qǐng)點(diǎn)擊輸入圖片描述

請(qǐng)點(diǎn)擊輸入圖片描述

請(qǐng)點(diǎn)擊輸入圖片描述

接下來讓9和1比較,發(fā)現(xiàn)9比1要大,所以9和1交換位置。

請(qǐng)點(diǎn)擊輸入圖片描述

請(qǐng)點(diǎn)擊輸入圖片描述

請(qǐng)點(diǎn)擊輸入圖片描述

請(qǐng)點(diǎn)擊輸入圖片描述

最后讓9和7比較,發(fā)現(xiàn)9比7要大,所以9和7交換位置。

請(qǐng)點(diǎn)擊輸入圖片描述

請(qǐng)點(diǎn)擊輸入圖片描述

請(qǐng)點(diǎn)擊輸入圖片描述

請(qǐng)點(diǎn)擊輸入圖片描述

這樣一來,元素9作為數(shù)列的最大元素,就像是汽水里的小氣泡一樣漂啊漂,漂到了最右側(cè)。

這時(shí)候,我們的冒泡排序的第一輪結(jié)束了。數(shù)列最右側(cè)的元素9可以認(rèn)為是一個(gè)有序區(qū)域,有序區(qū)域目前只有一個(gè)元素。

請(qǐng)點(diǎn)擊輸入圖片描述

請(qǐng)點(diǎn)擊輸入圖片描述

下面,讓我們來進(jìn)行第二輪排序:

首先讓5和6比較,發(fā)現(xiàn)5比6要小,因此元素位置不變。

接下來讓6和3比較,發(fā)現(xiàn)6比3要大,所以6和3交換位置。

請(qǐng)點(diǎn)擊輸入圖片描述

請(qǐng)點(diǎn)擊輸入圖片描述

請(qǐng)點(diǎn)擊輸入圖片描述

請(qǐng)點(diǎn)擊輸入圖片描述

繼續(xù)讓6和8比較,發(fā)現(xiàn)6比8要小,因此元素位置不變。

接下來讓8和2比較,發(fā)現(xiàn)8比2要大,所以8和2交換位置。

請(qǐng)點(diǎn)擊輸入圖片描述

請(qǐng)點(diǎn)擊輸入圖片描述

接下來讓8和1比較,發(fā)現(xiàn)8比1要大,所以8和1交換位置。

請(qǐng)點(diǎn)擊輸入圖片描述

請(qǐng)點(diǎn)擊輸入圖片描述

請(qǐng)點(diǎn)擊輸入圖片描述

請(qǐng)點(diǎn)擊輸入圖片描述

繼續(xù)讓8和7比較,發(fā)現(xiàn)8比7要大,所以8和7交換位置。

請(qǐng)點(diǎn)擊輸入圖片描述

請(qǐng)點(diǎn)擊輸入圖片描述

請(qǐng)點(diǎn)擊輸入圖片描述

請(qǐng)點(diǎn)擊輸入圖片描述

第二輪排序結(jié)束后,我們數(shù)列右側(cè)的有序區(qū)有了兩個(gè)元素,順序如下:

請(qǐng)點(diǎn)擊輸入圖片描述

請(qǐng)點(diǎn)擊輸入圖片描述

至于后續(xù)的交換細(xì)節(jié),我們這里就不詳細(xì)描述了,第三輪過后的狀態(tài)如下:

請(qǐng)點(diǎn)擊輸入圖片描述

請(qǐng)點(diǎn)擊輸入圖片描述

第四輪過后狀態(tài)如下:

請(qǐng)點(diǎn)擊輸入圖片描述

請(qǐng)點(diǎn)擊輸入圖片描述

第五輪過后狀態(tài)如下:

請(qǐng)點(diǎn)擊輸入圖片描述

請(qǐng)點(diǎn)擊輸入圖片描述

第六輪過后狀態(tài)如下:

請(qǐng)點(diǎn)擊輸入圖片描述

請(qǐng)點(diǎn)擊輸入圖片描述

第七輪過后狀態(tài)如下(已經(jīng)是有序了,所以沒有改變):

請(qǐng)點(diǎn)擊輸入圖片描述

請(qǐng)點(diǎn)擊輸入圖片描述

第八輪過后狀態(tài)如下(同樣沒有改變):

請(qǐng)點(diǎn)擊輸入圖片描述

請(qǐng)點(diǎn)擊輸入圖片描述

到此為止,所有元素都是有序的了,這就是冒泡排序的整體思路。

原始的冒泡排序是穩(wěn)定排序。由于該排序算法的每一輪要遍歷所有元素,輪轉(zhuǎn)的次數(shù)和元素?cái)?shù)量相當(dāng),所以時(shí)間復(fù)雜度是O(N^2) 。

冒泡排序代碼

請(qǐng)點(diǎn)擊輸入圖片描述

請(qǐng)點(diǎn)擊輸入圖片描述

希望對(duì)您有所幫助!~

java冒泡排序法代碼

冒泡排序是比較經(jīng)典的排序算法。代碼如下:

for(int i=1;iarr.length;i++){

for(int j=1;jarr.length-i;j++){

//交換位置

} ? ?

拓展資料:

原理:比較兩個(gè)相鄰的元素,將值大的元素交換至右端。

思路:依次比較相鄰的兩個(gè)數(shù),將小數(shù)放在前面,大數(shù)放在后面。即在第一趟:首先比較第1個(gè)和第2個(gè)數(shù),將小數(shù)放前,大數(shù)放后。然后比較第2個(gè)數(shù)和第3個(gè)數(shù),將小數(shù)放前,大數(shù)放后,如此繼續(xù),直至比較最后兩個(gè)數(shù),將小數(shù)放前,大數(shù)放后。重復(fù)第一趟步驟,直至全部排序完成。

第一趟比較完成后,最后一個(gè)數(shù)一定是數(shù)組中最大的一個(gè)數(shù),所以第二趟比較的時(shí)候最后一個(gè)數(shù)不參與比較;

第二趟比較完成后,倒數(shù)第二個(gè)數(shù)也一定是數(shù)組中第二大的數(shù),所以第三趟比較的時(shí)候最后兩個(gè)數(shù)不參與比較;

依次類推,每一趟比較次數(shù)-1;

??

舉例說明:要排序數(shù)組:int[]?arr={6,3,8,2,9,1};?

for(int i=1;iarr.length;i++){

for(int j=1;jarr.length-i;j++){

//交換位置

} ? ?

參考資料:冒泡排序原理

誰(shuí)能詳細(xì)的解釋下JAVA中的冒泡排序 謝謝- .-

int

array[]=new

int[]{9,2,3,1,0,5,8,4,7,6};//初始化一個(gè)數(shù)組,長(zhǎng)度為10

int

temp;//定義一個(gè)臨時(shí)變量,

System.out.println("原有數(shù)組內(nèi)容:");//輸出這幾個(gè)漢字

printArray(array);//調(diào)用printArray方法,并將前面初始化的數(shù)組作為參數(shù)傳遞給該方法

for(int

i

=1;iarray.length;i++){//這里應(yīng)該是算法的核心了,但是如果想理解,還是先看看內(nèi)層的循環(huán),

for(int

j

=0;jarray.length-i;j++){//循環(huán)了0到數(shù)組長(zhǎng)度10-1

一共10次

if(array[j]array[j+1]){//數(shù)組的第一個(gè)元素a[0]與第二個(gè)元素a[1]做比較,如果大于,第2個(gè)元素

temp=array[j];//那么將大的那個(gè)值a[0]的值賦值給臨時(shí)變量

array[j]=array[j+1];//再將a[1]的值賦值給a[0]

array[j+1]=temp;//最后把臨時(shí)變量中的值復(fù)制給a[1]

//看懂這里了嗎?如果前面的數(shù),或者形象點(diǎn)a[0]

,a[1],..依次往上排,那么就是如果排在下面的數(shù)組元素的值大于上面的數(shù)組元素的值那么就將這兩個(gè)元素的位置換一下,大的放上面,也就是排在數(shù)組的后面,像不像冒泡,水中的氣泡,越到上面越大;如果小的話當(dāng)然就沒關(guān)系了,還是小的在下面

}

//這一次內(nèi)層循環(huán)做完之后,保證了最下面的氣泡(數(shù)組元素的位置),它跟后面所有的元素都做了一次比較,如果它最大就能排到最上面

}

//最外層的循環(huán)保證了,從頭到尾將所有的數(shù)組元素按照從前到后,或者從下到上的順序都與后面的元素比較了一次,這就完成了所有元素的排序

}

System.out.println("從小到大排序后的結(jié)果:");

printArray(array);

}

private

static

void

printArray(int[]

array)

{//來看看,這個(gè)方法做了什么,在上面調(diào)用這個(gè)方法的時(shí)候已經(jīng)將你初始化的那個(gè)長(zhǎng)度為10的數(shù)組做為參數(shù)傳遞了進(jìn)來

//

TODO

Auto-generated

method

stub

for(int

i

:

array){//用增強(qiáng)for循環(huán),遍歷這個(gè)數(shù)組

System.out.print(i+"

");//一次打印i的值和空格

}

System.out.println("\n");//都遍歷結(jié)束后,換行

}

輸入內(nèi)容已經(jīng)達(dá)到長(zhǎng)度限制

還能輸入

9999

希望你滿意,遇到問題多多分析!

java冒泡排序詳細(xì)講解

首先無(wú)論是哪種語(yǔ)言,各種排序的算法思想都是一樣的。

冒泡排序的算法思想是:1、比較相鄰的元素。如果第一個(gè)比第二個(gè)大,就交換他們兩個(gè)。

2、對(duì)每一對(duì)相鄰元素作同樣的工作,從開始第一對(duì)到結(jié)尾的最后一對(duì)。在這一點(diǎn),最后的元素應(yīng)該會(huì)是最大的數(shù)。3、針對(duì)所有的元素重復(fù)以上的步驟,除了最后一個(gè)。4、持續(xù)每次對(duì)越來越少的元素重復(fù)上面的步驟,直到?jīng)]有任何一對(duì)數(shù)字需要比較。

代碼分析:你的代碼中外層第一次循環(huán)首先將數(shù)組中的各個(gè)元素與temp[1]比較,也就是數(shù)組中的第二個(gè)元素,內(nèi)層循環(huán)中,每次循環(huán)都會(huì)判斷,temp[1]與其他元素的大小。如果有元素的值比temp[1]大,就講他們你的值交換,使用交換后的值繼續(xù)依次與未經(jīng)比較的值進(jìn)行比較,直到與所有的元素比較完,這是第一趟排序。第一趟排序中,外層循環(huán)只執(zhí)行了一次,內(nèi)層循環(huán)每比較一次,循環(huán)一次,所以內(nèi)層循環(huán)執(zhí)行了temp.length次。第一趟排序找出了數(shù)組中最大的數(shù),放在數(shù)組的最后一位置。。。依此類推,第二趟排序找出第二大的數(shù)放在倒數(shù)第二的位置。其后的每一次循環(huán)以此類推。


當(dāng)前標(biāo)題:冒泡排序代碼java講解 java冒泡排序簡(jiǎn)單代碼
文章鏈接:http://weahome.cn/article/doodjgi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部