亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

java利用冒泡排序對數組進行排序

2019-11-26 15:11:11
字體:
來源:轉載
供稿:網友

本文實例講述了java利用冒泡排序對數組進行排序的方法。分享給大家供大家參考。具體如下:

一、冒泡排序:

利用冒泡排序對數組進行排序

二、基本概念:

依次比較相鄰的兩個數,將小數放在前面,大數放在后面。即在第一趟:首先比較第1個和第2個數,將小數放前,大數放后。然后比較第2個數和第3個數,將小數放前,大數放后,如此繼續,直至比較最后兩個數,將小數放前,大數放后。至此第一趟結束,將最大的數放到了最后。在第二趟:仍從第一對數開始比較(因為可能由于第2個數和第3個數的交換,使得第1個數不再小于第2個數),將小數放前,大數放后,一直比較到倒數第二個數(倒數第一的位置上已經是最大的),第二趟結束,在倒數第二的位置上得到一個新的最大數(其實在整個數列中是第二大的數)。如此下去,重復以上過程,直至最終完成排序。

三、實現思路:

用二重循環實現,外循環變量設為i,內循環變量設為j。假如有n個數需要進行排序,則外循環重復n-1次,內循環依次重復n-1,n-2,...,1次。每次進行比較的兩個元素都是與內循環j有關的,它們可以分別用a[j]和a[j+1]標識,i的值依次為1,2,...,n-1,對于每一個i,j的值依次為0,1,2,...n-i 。

設數組長度為N:
1.比較相鄰的前后二個數據,如果前面數據大于后面的數據,就將二個數據交換。
2.這樣對數組的第0個數據到N-1個數據進行一次遍歷后,最大的一個數據就“沉”到數組第N-1個位置。
3.N=N-1,如果N不為0就重復前面二步,否則排序完成。

四、java代碼實現:

package ArrayDemo; /**  * @author pplsunny  * @category .21  */ public class ArrayDemo {     /**    * 用增強for循環輸出排序結果    */   public static void main(String[] args) {    int[] a = { 2, 4, 76, 12, 34, 23, 86 };    ArrayDemo.bubbleSort(a);    for (int b : a) {     System.out.print(b + " ");    }   }   /*    * 冒泡排序函數,定義為靜態的方便使用, * 也是開發中定義工具類的一個方法    */   public static void bubbleSort(int a[]) {    for (int i = 1; i < a.length; i++) {   //這是控制趟數     for (int j = 0; j < a.length - i; j++) {    //j < a.length - i,比較元素的個數      if (a[j] > a[j + 1]) {       int temp = a[j];       a[j] = a[j + 1];       a[j + 1] = temp;      }     }    }   } } 

五、性能分析:

若記錄序列的初始狀態為"正序",則冒泡排序過程只需進行一趟排序,在排序過程中只需進行n-1次比較,且不移動記錄;反之,若記錄序列的初始狀態為"逆序",則需進行n(n-1)/2次比較和記錄移動。因此冒泡排序總的時間復雜度為O(n*n)。

六、算法優化:

冒泡排序法存在的不足及改進方法:
第一,在排序過程中,執行完最后的排序后,雖然數據已全部排序完備,但程序無法判斷是否完成排序,為了解決這一不足,可設置一個標志位flag,將其初始值設置為非0,表示被排序的表是一個無序的表,每一次排序開始前設置flag值為0,在進行數據交換時,修改flag為非0。在新一輪排序開始時,檢查此標志,若此標志為0,表示上一次沒有做過交換數據,則結束排序;否則進行排序;

/* * 冒泡排序函數改進版 */ public static void BubbleSort(int[] a) {   boolean flag = true;   while (flag) {    flag = false;    for (int i = 0; i < a.length - 1; i++) {     for (int j = 0; j < a.length - i ; j++) {      if (a[j] > a[j + 1]) {       int temp = a[j];       a[j] = a[j + 1];       a[j + 1] = temp;       flag = true;      }     }     if (!flag)      break; // 如果沒有發生交換,則退出循環     }   } }

第二、在冒泡排序中,一趟掃描有可能無數據交換,也有可能有一次或多次數據交換,在傳統的冒泡排序算法及近年來的一些改進的算法中,只記錄一趟掃描有無數據交換的信息,對數據交換發生的位置信息則不予處理。為了充分利用這一信息,可以在一趟全局掃描中,對每一反序數據對進行局部冒泡排序處理,稱之為局部冒泡排序。局部冒泡排序與冒泡排序算法具有相同的時間復雜度,并且在正序和逆序的情況下,所需的關鍵字的比較次數和移動次數完全相同。由于局部冒泡排序和冒泡排序的數據移動次數總是相同的,而局部冒泡排序所需關鍵字的比較次數常少于冒泡排序,這意味著局部冒泡排序很可能在平均比較次數上對冒泡排序有所改進,當比較次數較少的優點不足以抵消其程序復雜度所帶來的額外開銷,而當數據量較大時,局部冒泡排序的時間性能則明顯優于冒泡排序。對于N個無序數據,我們在進行一趟冒泡排序時,如果第k個數據和第k+1個數據逆序,那么對第k+1個數據進行一趟向前的冒泡排序,使其移動到合適的位置,也就是說讓前面k+1個數據調節為正序。因為這種冒泡法只對前k+1個數據冒泡處理,所以我們稱它為――局部冒泡

希望本文所述對大家的java程序設計有所幫助。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日韩高清区| 亚洲视频在线观看视频| 欧美在线视频一二三| 久久成人这里只有精品| 在线播放国产一区二区三区| 亚洲男人天堂2024| www.欧美免费| 91在线精品播放| 亚洲国产精品一区二区三区| 国产999在线| 日本精品免费一区二区三区| 国模gogo一区二区大胆私拍| 亚洲国产精彩中文乱码av在线播放| 91丝袜美腿美女视频网站| 久久频这里精品99香蕉| 亚洲乱码国产乱码精品精天堂| xxx成人少妇69| 欧美日韩国产成人| 中日韩美女免费视频网站在线观看| 在线观看日韩视频| 亚洲欧美日韩直播| 国产91ⅴ在线精品免费观看| 亚洲国产日韩欧美在线99| 国产精品久久久久久影视| 一区二区三区视频免费| 成人淫片在线看| 亚洲免费视频一区二区| 中文字幕亚洲精品| 一本色道久久综合狠狠躁篇怎么玩| 一个人www欧美| 亚洲a在线播放| 日韩在线一区二区三区免费视频| 韩国欧美亚洲国产| 欧美一性一乱一交一视频| 亚洲国产欧美一区二区丝袜黑人| 国产一区私人高清影院| 亚洲综合在线小说| 日韩成人黄色av| 亚洲一区999| 国产精品一香蕉国产线看观看| 欧美激情一区二区三区高清视频| 午夜精品久久久久久99热软件| 超碰97人人做人人爱少妇| 国产精品久久久久久久久久久久久| 日韩在线视频播放| 成人av资源在线播放| 欧美日韩国产成人高清视频| 国产欧美最新羞羞视频在线观看| 日韩精品在线观看一区二区| 欧美亚洲另类制服自拍| 91免费看视频.| 亚洲自拍偷拍第一页| 久久免费视频在线观看| 久久久久久久久久婷婷| 69**夜色精品国产69乱| 一区二区三区视频免费| 国产精品精品视频| 国产精品美腿一区在线看| 国产视频精品自拍| 国产成人97精品免费看片| 欧美国产极速在线| 国产精品精品久久久久久| 久热精品视频在线观看| 国产美女搞久久| 亚洲高清不卡av| 欧美日韩一区二区精品| 国产精品福利在线| …久久精品99久久香蕉国产| 国产精品嫩草影院一区二区| 亚洲奶大毛多的老太婆| 国产成人精品一区| 深夜福利国产精品| 一本色道久久88精品综合| www.日韩免费| 精品毛片网大全| 色悠悠久久88| 欧美激情一级精品国产| 色七七影院综合| 欧美成人精品一区| 久久精品国产2020观看福利| 欧美日韩亚洲国产一区| 日韩精品亚洲精品| 久久99精品久久久久久噜噜| 91成品人片a无限观看| 中文字幕精品在线视频| 欧美精品成人在线| 91亚洲精品久久久| 亚洲一区二区免费在线| 日韩在线观看网址| 在线视频日韩精品| 欧美重口另类videos人妖| 午夜精品免费视频| 欧美激情第6页| 亚洲欧洲日产国产网站| 国产va免费精品高清在线观看| 欧美日韩亚洲天堂| 国产成人激情视频| 8090理伦午夜在线电影| 欧美国产日韩在线| 波霸ol色综合久久| 中国日韩欧美久久久久久久久| 欧美亚洲国产另类| 韩国v欧美v日本v亚洲| 国产成人精品视频在线观看| 欧美国产第二页| 欧美激情综合亚洲一二区| 久久久之久亚州精品露出| 久久免费视频网站| 欧美激情第1页| 欧美性猛交xxxx富婆| 欧美日韩国产一区在线| 国产精品自在线| 在线亚洲国产精品网| 成人国产精品av| 国产精品综合久久久| 亚洲综合在线中文字幕| 国外成人在线视频| 欧美一区二区三区……| 九九热在线精品视频| 黑人巨大精品欧美一区二区一视频| 在线午夜精品自拍| 亚洲视频在线观看免费| 久久久久久久国产精品视频| 亚洲少妇中文在线| 亚洲一区二区三区xxx视频| 国产精品男人爽免费视频1| 亚洲精品自拍偷拍| 欧美电影在线播放| 一本色道久久88综合亚洲精品ⅰ| 久久人91精品久久久久久不卡| 欧美高清激情视频| 性日韩欧美在线视频| 国产精品99久久久久久久久久久久| 亚洲乱码一区二区| 日韩欧美亚洲范冰冰与中字| 亚洲自拍小视频| 久久久久成人网| 久久亚洲精品中文字幕冲田杏梨| 欧美黑人一级爽快片淫片高清| 欧美视频在线观看 亚洲欧| 欧美亚州一区二区三区| 国产精品丝袜久久久久久不卡| 亚洲毛茸茸少妇高潮呻吟| 日韩福利伦理影院免费| 国产日韩中文字幕| 亚洲激情自拍图| 欧美日韩另类字幕中文| 欧美大片免费看| 色哟哟网站入口亚洲精品| 欧美成人第一页| 久久伊人精品视频| 日韩中文第一页| 欧美日韩性视频在线| 欧美大片在线免费观看| 欧美日韩国产综合新一区| 欧美午夜精品久久久久久人妖| 国产精品网站入口| 国产精品久久久久影院日本| 欧美不卡视频一区发布| 国产精品主播视频| 最近日韩中文字幕中文| 一本一本久久a久久精品综合小说| 国产精品丝袜久久久久久不卡| 狠狠躁夜夜躁人人躁婷婷91|