国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發(fā)設計 > 正文

白話排序算法--冒泡排序

2019-11-14 21:43:56
字體:
供稿:網(wǎng)友
白話排序算法--冒泡排序

前言:

  這兩天研究排序的算法,算法理解起來比較抽象,不拿筆劃著走著就容易繞進去,所以就想出了以體育課排隊列的方式進行演示

  系列的其他篇章的情景同上


冒泡排序: 重復地走訪過要排序的數(shù)列,一次比較兩個元素,如果他們的順序錯誤就把他們交換過來。走訪數(shù)列的工作是重復地進行直到?jīng)]有再需要交換,也就是說該      數(shù)列已經(jīng)排序完成。

情景描述:

  體育課上,老師需要一個縱列(從低到高豎著站一排),集合的時候大家隨便湊了一列,但是高低不齊,一共6個人這時老師說,我給你們個辦法,按照我的辦法,你們自己排列隊形。

  1. 從第一個同學開始,如果前一個同學比后一個同學個子高了,就交換位置,否則不動
  2. 第二個再和第三個同學比較,依次類推,直到最后一個同學沒人比較了,他是最高的,依次冒泡排序完畢
  3. 排除已確定的同學,重復步驟1和2,持續(xù)每次越來越少的同學進行比較換位
  4. 直到需要比較的同學剩一個了,就無需比較,隊列已經(jīng)是由低往高依次排列了

  就這樣,同學們換來換去,一遍又一遍,自己完成了隊列的排列.....


代碼片段:

  /**     * 冒泡排序:每次只能確定一位最大的,放置數(shù)組末尾 ,下次忽略已經(jīng)確定的最大值繼續(xù)比較     * 優(yōu)點:穩(wěn)定     * 缺點:效率底下(重復相鄰數(shù)據(jù)比較,且每次比較都會進行位置置換)     * @param arr     * @return     */    public static int[] bubbleSort(int[] arr) {        int len = arr.length; // 數(shù)組長度        for (int i = 0; i < len; i++) { // 遍歷數(shù)組,用來限制內(nèi)循環(huán)次數(shù)            for (int j = 1; j < len - i; j++) { // 內(nèi)循環(huán),依次減少1個次數(shù)(即為比較幾次,就忽略后幾位)                if (arr[j - 1] > arr[j]) { // 如果前一位大于后一位,即 前>后,需要交換位置                    int k = arr[j - 1]; // 把前面的先緩存起來                    arr[j - 1] = arr[j]; // 讓前面的等于后一位                    arr[j] = k; // 后一位等于前一位之前的緩存值                }            }        }        return arr;    }

  所以,在數(shù)據(jù)較少的時候還是可以采用的,但數(shù)據(jù)大量時應該避免使用,選擇其他排序方式。

  •  冒泡排序
  • 插入排序
  • 選擇排序
  • 快速排序

                              寫作不易,難免有疏漏和錯誤,還請慷慨指正,不錯請推薦

  ps:歡迎轉(zhuǎn)載,轉(zhuǎn)載請注明出處:http://m.survivalescaperooms.com/liuyitian/p/4071840.html


                                      每天多學一點點 代碼少敲一點點             


上一篇:IDEA 13.1.1 漢字亂碼修復設置

下一篇:JMS

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 丘北县| 嘉义市| 安西县| 青州市| 庆云县| 乌海市| 台江县| 安远县| 海南省| 连江县| 多伦县| 刚察县| 文昌市| 绥阳县| 无极县| 榕江县| 大荔县| 海晏县| 余庆县| 尖扎县| 龙山县| 盱眙县| 阳城县| 休宁县| 吴桥县| 伊吾县| 新邵县| 东源县| 烟台市| 本溪| 肥西县| 沭阳县| 田阳县| 庄浪县| 南溪县| 阿克| 巧家县| 平江县| 准格尔旗| 莒南县| 剑河县|