冒泡排序是比較經(jīng)典的排序算法。代碼如下:
網(wǎng)站前端頁(yè)面設(shè)計(jì)會(huì)用DIV+CSS架構(gòu),布局出來(lái)的網(wǎng)站外觀簡(jiǎn)潔大氣。HTML靜態(tài),H5建站+CSS3網(wǎng)站,自適應(yīng)電腦、手機(jī)、平板,符合用戶體驗(yàn)的習(xí)慣,更容易與用戶產(chǎn)生互動(dòng)。專(zhuān)業(yè)網(wǎng)絡(luò)公司的服務(wù)理念是“高性價(jià)比建站,讓企業(yè)網(wǎng)站具備營(yíng)銷(xiāo)價(jià)值,促進(jìn)長(zhǎ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ù)不參與比較;
依次類(lèi)推,每一趟比較次數(shù)-1;
??
舉例說(shuō)明:要排序數(shù)組:int[]?arr={6,3,8,2,9,1};?
for(int i=1;iarr.length;i++){
for(int j=1;jarr.length-i;j++){
//交換位置
} ? ?
參考資料:冒泡排序原理
冒泡排序:比較相鄰元素,大的向后交換,就好比氣泡一樣。
主要代碼如下:
for(int
i=0;iary1.length-1;i++){
for(int
j=0;jary1.length-i-1;j++){
if(ary1[j]ary1[j+1]){
int
temp
=
ary1[j+1];
ary1[j+1]=
ary1[j];
ary1[j]
=
temp;
}
}
}
方法一: package basic.javastu; public class NumberTest {
/** * 實(shí)現(xiàn)冒泡程序1 */ public static void main(String[] args) { // TODO Auto-generated method stub
int[] numb=new int[]{3,42,57,1,32,24};
int len=numb.length;
int i,j;
int temp;
System.out.println("排序前的數(shù)組各個(gè)值:");
for(i=0;ilen;i++)
{
System.out.print(numb[i]+"\t");
}
System.out.println("\n");
for(i=1;i=len;i++)
{
for(j=len-1;j=1;j--)
{
if(numb[j]numb[j-1])
{
temp=numb[j];
numb[j]=numb[j-1];
numb[j-1]=temp;
}
}
}
System.out.println("排序后的數(shù)組各個(gè)值:");
for(i=0;ilen;i++)
{
System.out.print(numb[i]+"\t");
}
}
}
方法二: package basic.javastu; public class NumberTest2 {
/** * 實(shí)現(xiàn)冒泡程序2 */ public static void main(String[] args) { // TODO Auto-generated method stub
int[] numb=new int[]{3,42,57,1,32,24};
int leng=numb.length;
System.out.println("排序前的數(shù)組各個(gè)值:");
for(int i=0;ileng;i++)
{
System.out.print(numb[i]+"\t");
}
System.out.println("\n");
swap(numb);
System.out.println("數(shù)組排序后:"); for(int i=0;ileng;i++)
{
System.out.print(numb[i]+"\t");
} }
private static int[] swap(int[] numb) { int n2[]=numb; int len=n2.length; int i,j; int temp; for(i=1;i=len;i++)
{
for(j=len-1;j=1;j--)
{
if(n2[j]n2[j-1])
{
temp=n2[j];
n2[j]=n2[j-1];
n2[j-1]=temp;
}
}
} return n2; } }
方法三: package basic.javastu; public class NumberTest3 {
/** * 實(shí)現(xiàn)冒泡程序2 */ public static void main(String[] args) { // TODO Auto-generated method stub
int[] numb=new int[]{3,42,57,1,32,24};
int leng=numb.length;
System.out.println("排序前的數(shù)組各個(gè)值:");
for(int i=0;ileng;i++)
{
System.out.print(numb[i]+"\t");
}
System.out.println("\n");
swap(numb);
System.out.println("數(shù)組排序后:"); for(int i=0;ileng;i++)
{
System.out.print(numb[i]+"\t");
} }
private static void swap(int[] numb) { int len=numb.length; int i,j; int temp; for(i=1;i=len;i++)
{
for(j=len-1;j=1;j--)
{
if(numb[j]numb[j-1])
{
temp=numb[j];
numb[j]=numb[j-1];
numb[j-1]=temp;
}
}
} } }
for(i=0;iargs.length;i++) //從第一個(gè)元素開(kāi)始
for(j=0;jargs.length;j++){
if(Integer.parseInt(args[j])Integer.parseInt(args[j+1])){
temp = args[j];
args[j] = args[j+1];
args[j+1] = temp;
}
}
這段代碼很容易理解啊,就是冒泡算法的基本思想,將待排序的元素看作是豎著排列的“氣泡”,較小的元素比較輕,從而要往上浮。在冒泡排序算法中我們要對(duì)這個(gè)“氣泡”序列處理若干遍。所謂一遍處理,就是自底向上檢查一遍這個(gè)序列,并時(shí)刻注意兩個(gè)相鄰的元素的順序是否正確。如果發(fā)現(xiàn)兩個(gè)相鄰元素的順序不對(duì),即“輕”的元素在下面,就交換它們的位置。顯然,處理一遍之后,“最輕”的元素就浮到了最高位置;處理二遍之后,“次輕”的元素就浮到了次高位置。在作第二遍處理時(shí),由于最高位置上的元素已是“最輕”元素,所以不必檢查。一般地,第i遍處理時(shí),不必檢查第i高位置以上的元素,因?yàn)榻?jīng)過(guò)前面i-1遍的處理,它們已正確地排好序。
冒泡排序(Bubble Sort)是一種簡(jiǎn)單的排序算法。它重復(fù)地走訪過(guò)要排序的數(shù)列,一次比較兩個(gè)元素,如果他們的順序錯(cuò)誤就把他們交換過(guò)來(lái)。走訪數(shù)列的工作是重復(fù)地進(jìn)行直到?jīng)]有再需要交換,也就是說(shuō)該數(shù)列已經(jīng)排序完成。這個(gè)算法的名字由來(lái)是因?yàn)樵叫〉脑貢?huì)經(jīng)由交換慢慢“浮”到數(shù)列的頂端。
冒泡排序算法的運(yùn)作如下:
比較相鄰的元素。如果第一個(gè)比第二個(gè)大,就交換他們兩個(gè)。
對(duì)每一對(duì)相鄰元素作同樣的工作,從開(kāi)始第一對(duì)到結(jié)尾的最后一對(duì)。在這一點(diǎn),最后的元素應(yīng)該會(huì)是最大的數(shù)。
針對(duì)所有的元素重復(fù)以上的步驟,除了最后一個(gè)。
持續(xù)每次對(duì)越來(lái)越少的元素重復(fù)上面的步驟,直到?jīng)]有任何一對(duì)數(shù)字需要比較。
public?class?BubbleSort{??
public?static?void?main(String[]?args){??
int?score[]?=?{67,?69,?75,?87,?89,?90,?99,?100};??
for?(int?i?=?0;?i??score.length?-1;?i++){????//最多做n-1趟排序??
for(int?j?=?0?;j??score.length?-?i?-?1;?j++){????//對(duì)當(dāng)前無(wú)序區(qū)間score[0......length-i-1]進(jìn)行排序(j的范圍很關(guān)鍵,這個(gè)范圍是在逐步縮小的)??
if(score[j]??score[j?+?1]){????//把小的值交換到后面??
int?temp?=?score[j];??
score[j]?=?score[j?+?1];??
score[j?+?1]?=?temp;??
}??
}??????????????
System.out.print("第"?+?(i?+?1)?+?"次排序結(jié)果:");??
for(int?a?=?0;?a??score.length;?a++){??
System.out.print(score[a]?+?"\t");??
}??
System.out.println("");??
}??
System.out.print("最終排序結(jié)果:");??
for(int?a?=?0;?a??score.length;?a++){??
System.out.print(score[a]?+?"\t");??
}??
}??
}
網(wǎng)站標(biāo)題:java中的冒泡代碼 java冒泡排序法示意圖
瀏覽路徑:http://jinyejixie.com/article22/doscccc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站營(yíng)銷(xiāo)、ChatGPT、定制網(wǎng)站、手機(jī)網(wǎng)站建設(shè)、域名注冊(cè)、品牌網(wǎng)站設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容