Java 9種排序算法詳解和示例匯總

冒泡排序、選擇排序东亦、直接插入排序杏节、二分法排序、希爾排序典阵、快速排序奋渔、堆排序、歸并排序壮啊、基數(shù)排序嫉鲸,共9中排序算法詳解和代碼示例。

排序算法

示例中全部采用從小到大排序歹啼,編碼方式為本人理解的思路玄渗,算法思想也是自己理解的口語(yǔ)表達(dá)方式减江,若想查看更準(zhǔn)確的算法思想和代碼示例可直接搜索各算法的百科

示例源碼地址


一、冒泡排序

1捻爷、算法思想

  1. 兩兩比較辈灼,如果后者比前者大則交換位置
  2. 每遍歷一圈最大的數(shù)就會(huì)冒到最后,則確定了本輪比較中的最大值放到最后不動(dòng)
  3. 循環(huán)1也榄、2直至遍歷完所有

2巡莹、代碼示例

private int[] array = {23, 11, 7, 29, 33, 59, 8, 20, 9, 3, 2, 6, 10, 44, 83, 28, 5, 1, 0, 36};

/**
 * 冒泡排序:兩兩比較,大者交換位置甜紫,則每一圈比較最大的數(shù)就會(huì)冒到最后降宅,循環(huán)直至遍歷完所有
 */
private void bubbleSort() {

    for (int i = 0; i < array.length - 1; i++) {
        for (int j = 0; j < array.length - i - 1; j++) {
            if (array[j] > array[j + 1]) {
                int temp = array[j];
                array[j] = array[j + 1];
                array[j + 1] = temp;
            }
        }
    }
    
}
  • 時(shí)間復(fù)雜度O(n2)


二、選擇排序

1囚霸、算法思想

  1. 找到所有數(shù)中最大值下標(biāo)
  2. 找到最大值的下標(biāo)與最后一個(gè)位置的數(shù)值交換位置腰根,這樣每次找到的最大值則固定到最后
  3. 循環(huán)1、2操作直至遍歷找到所有

2拓型、代碼示例

private int[] array = {23, 11, 7, 29, 33, 59, 8, 20, 9, 3, 2, 6, 10, 44, 83, 28, 5, 1, 0, 36};

/**
 * 選擇排序:找到當(dāng)前數(shù)中最大的數(shù)字额嘿,找到后與最后一個(gè)位置的數(shù)字交換位置,直至循環(huán)遍歷完所有的數(shù)為止
 */
private void selectSort() {

    for (int i = 0; i < array.length; i++) {

        // 定義最大數(shù)字的下標(biāo)劣挫,默認(rèn)為0
        int max = 0;
        for (int j = 0; j < array.length - i; j++) {

            // 找到比自己大的數(shù)就更新下標(biāo)
            if (array[max] < array[j]) {
                max = j;
            }
        }

        // 將找到最大的數(shù)與最后一個(gè)數(shù)字交換位置
        int temp = array[array.length - i - 1];
        array[array.length - i - 1] = array[max];
        array[max] = temp;
    }

}
  • 時(shí)間復(fù)雜度O(n2)册养,但是由于選擇排序每輪比較只交換一次,所以實(shí)際性能要優(yōu)于冒泡


三压固、直接插入排序

1球拦、算法思想

  1. 從位置1的數(shù)值n開(kāi)始,將前面已經(jīng)遍歷過(guò)的數(shù)值集合看成數(shù)組m帐我,則將n往m中插入
  2. n插入到集合m中時(shí)從后往前比較坎炼,如果比n大則往后移一位,如果比較到比n小拦键,則當(dāng)前位置就是插入n的位置
  3. 通過(guò)1谣光、2的操作則可以保證每次插入n后m的集合都是排好的序列
  4. 循環(huán)1、2矿咕、3操作將集合中所有數(shù)值均插入一遍即排序完成

2抢肛、代碼示例

private int[] array = {23, 11, 7, 29, 33, 59, 8, 20, 9, 3, 2, 6, 10, 44, 83, 28, 5, 1, 0, 36};

/**
 * 直接插入排序:從1開(kāi)始遍歷數(shù)組狼钮,每個(gè)數(shù)字都在前面已經(jīng)遍歷的數(shù)字中插入
 * 從小到大排序的話(huà)碰到比它大的則往后移碳柱,直到比它小為止
 */
private void insertSort() {
    for (int i = 1; i < array.length; i++) {
        int temp = array[i];
        int j;
        // 在前面已經(jīng)遍歷過(guò)的數(shù)字中比較若小于則往后移
        for (j = i - 1; j >= 0; j--) {
            if (temp < array[j]) {
                array[j + 1] = array[j];
            } else {
                break;
            }
        }
        array[j + 1] = temp;
    }
}
  • 時(shí)間復(fù)雜度O(n2)


四、二分法排序

  • 二分法排序是直接插入排序的改進(jìn)版本熬芜,直接插入排序插入到前方集合中時(shí)采用的方式是逐個(gè)比較莲镣,二分法則是采用二分比較

1、算法思想

  1. 從位置1的數(shù)值為n涎拉,將前面已經(jīng)遍歷過(guò)的數(shù)值集合看成數(shù)組m瑞侮,則將n往m中插入
  2. n插入到集合m中時(shí)采用二分法的圆,先比較m中中間的數(shù)值,如果比n大則繼續(xù)比較后面一半集合的中間的數(shù)值半火,直至比較到拆分的集合中左邊一半或者右邊一半沒(méi)有值為止越妈,則當(dāng)前中間值的位置即為n插入到m中的位置
  3. 通過(guò)1、2的操作則可以保證每次插入n后m的集合都是排好的序列
  4. 循環(huán)1钮糖、2梅掠、3操作將集合中所有數(shù)值均插入一遍即排序完成

2、代碼示例

private int[] array = {23, 11, 7, 29, 33, 59, 8, 20, 9, 3, 2, 6, 10, 44, 83, 28, 5, 1, 0, 36};

/**
 * 二分插入排序:從1開(kāi)始遍歷店归,已經(jīng)遍歷的數(shù)組中頭是left阎抒,尾是right,遍歷到的數(shù)字與中間的數(shù)字對(duì)比
 * 若小于中間的數(shù)字則right變更成中間數(shù)字前面的一個(gè)數(shù)字消痛,反之則變更left
 * 直至最后left>right則插入
 */
private void binaryInsertSort() {
    for (int i = 1; i < array.length; i++) {
        int temp = array[i];
        int left = 0, right = i - 1;
        int mid;
        while (left <= right) {
            mid = (left + right) / 2;
            if (temp < array[mid]) {
                right = mid - 1;
            } else {
                left = mid + 1;
            }
        }
        // 將遍歷到比他大的數(shù)字全部往后移一位
        for (int j = i - 1; j >= left; j--) {
            array[j + 1] = array[j];
        }
        array[left] = temp;
    }
}
  • 時(shí)間復(fù)雜度O(nlogn)


五且叁、希爾排序

1、算法思想

  1. 定義一個(gè)增量m秩伞,集合的長(zhǎng)度為n逞带,則將集合拆分成n/m組,每組內(nèi)部進(jìn)行比較排序
  2. 每組內(nèi)比較的方法無(wú)要求纱新,可以用插入或者二分法都行
  3. 假如要排序一段集合為{4掰担,1,2怒炸,3}带饱,定義m為2,則拆分成兩組兩兩比較阅羹,即為4和2比勺疼,1和3比
  4. 因此按照1、2的思路每比較一次都可以將m組內(nèi)的數(shù)值排序
  5. 不斷變化m的值捏鱼,多次分組遍歷之后即可排序

2执庐、代碼示例

  • m的變化方式有多種,不同的變化方式可能排序結(jié)果和效率不同导梆。此處示例采用的方式是m=m/2
private int[] array = {23, 11, 7, 29, 33, 59, 8, 20, 9, 3, 2, 6, 10, 44, 83, 28, 5, 1, 0, 36};

/**
 * 希爾排序:定義一個(gè)增量m轨淌,比較的數(shù)字集合總數(shù)為n,則將集合分成n/m組看尼,每組進(jìn)行插入排序
 * 隨后m遞減递鹉,多次比較之后就可得出排序后的集合
 */
private void shellSort() {
    int m = array.length;
    while (true) {
        // 本次增量的變化方式為 m/2
        m = m / 2;
        // 分組后的數(shù)組下標(biāo)為n/m的摩
        for (int i = 0; i < m; i++) {
            // 分組后數(shù)組的數(shù)據(jù)為原數(shù)組下標(biāo)摩為i的數(shù)
            for (int j = i + m; j < array.length; j += m) {
                // 每組內(nèi)部進(jìn)行插入排序(此處使用直接插入排序方式,也可使用二分法插入)
                int temp = array[j];
                int k;
                // 在前面已經(jīng)遍歷過(guò)的數(shù)字中比較若小于則往后移
                for (k = j - m; k >= i; k -=m) {
                    if (temp < array[k]) {
                        array[k + m] = array[k];
                    } else {
                        break;
                    }
                }
                array[k + m] = temp;
            }
        }

        if (m == 1) {
            break;
        }
    }
}
  • 時(shí)間復(fù)雜度O(nlogn)


六藏斩、快速排序

1躏结、算法思想

  1. 快速排序的思想主要是先設(shè)置一個(gè)基準(zhǔn)點(diǎn)m,這里我們假設(shè)每次設(shè)置的基準(zhǔn)點(diǎn)都是每一組的第一個(gè)數(shù)值
  2. 拿著基準(zhǔn)點(diǎn)m在集合中進(jìn)行比較狰域,找到它應(yīng)該放置的位置
  3. 比較方式主要是定義集合中最左邊的下標(biāo)left媳拴,最右邊的下標(biāo)right黄橘,從左邊開(kāi)始比較,比m小則left++屈溉,找到比m大的則停住塞关,將left下標(biāo)的值賦值成right下標(biāo)的值,然后同理比較right子巾,比m大的則right--描孟,找到比m小的就賦值成left下標(biāo)的值。當(dāng)left==right之后則比較完成
  4. 經(jīng)過(guò)步驟3的比較之后則可以找到m點(diǎn)排序所在的位置砰左,然后集合被分成前后兩半匿醒,各自按照1、2缠导、3的方式排序廉羔,遞歸至全部拆分比較完成后即排序完成
  • 由于步驟3思想較復(fù)雜一點(diǎn),特此引用《啊哈僻造!算法》一書(shū)中的插圖演示一下憋他,圖中以第一個(gè)點(diǎn)6為基準(zhǔn)點(diǎn),找到6排序后應(yīng)該所在的位置
快速排序
快速排序
快速排序
快速排序

2髓削、代碼示例

private int[] array = {23, 11, 7, 29, 33, 59, 8, 20, 9, 3, 2, 6, 10, 44, 83, 28, 5, 1, 0, 36};

/**
 * 快速排序:找到某個(gè)點(diǎn)排序之后它應(yīng)該所在的位置
 */
private void quickSort() {
    quickSort(0, array.length - 1);
}

/**
 * 找到開(kāi)始和結(jié)束位置之間以第一個(gè)數(shù)為基數(shù)竹挡,這個(gè)基數(shù)應(yīng)該所在的位置
 * 找到之后以基數(shù)為中心點(diǎn)拆分成前后兩段,依次遞歸進(jìn)行本操作立膛,直至最后遍歷完所有基數(shù)為止
 *
 * @param low  開(kāi)始的點(diǎn)下標(biāo)
 * @param high 結(jié)束的點(diǎn)下標(biāo)
 */
private void quickSort(int low, int high) {
    if (low >= high) {
        return;
    }
    int mid = getMiddle(low, high);
    quickSort(low, mid - 1);
    quickSort(mid + 1, high);
}

/**
 * 通過(guò)比較獲取最開(kāi)始基數(shù)最后所在的位置
 *
 * @param low  最開(kāi)始的位置
 * @param high 結(jié)束的位置
 * @return 最后基數(shù)所在的位置
 */
private int getMiddle(int low, int high) {
    int temp = array[low];
    while (low < high) {
        while (low < high && array[high] >= temp) {
            high--;
        }
        array[low] = array[high];

        while (low < high && array[low] <= temp) {
            low++;
        }
        array[high] = array[low];
    }
    array[low] = temp;
    return low;
}
  • 時(shí)間復(fù)雜度O(nlogn)


七揪罕、堆排序

1、算法思想

  1. 將數(shù)組構(gòu)建成大堆二叉樹(shù)宝泵,即所有節(jié)點(diǎn)的父節(jié)點(diǎn)的值都大于葉子節(jié)點(diǎn)的完全二叉樹(shù)
  2. 若葉子節(jié)點(diǎn)比父節(jié)點(diǎn)大好啰,則交換位置
  3. 根節(jié)點(diǎn)即為最大值,則將根節(jié)點(diǎn)與最后的的一個(gè)葉子節(jié)點(diǎn)交換位置
  4. 重復(fù)1儿奶,2操作框往,每次都找最大值則放置最后即可排序完成
  • 由于堆排序運(yùn)用到了完全二叉樹(shù)的數(shù)據(jù)結(jié)構(gòu),較難理解闯捎,特地在網(wǎng)上找了個(gè)算法演示的圖片參考
堆排序

2椰弊、代碼示例

private int[] array = {23, 11, 7, 29, 33, 59, 8, 20, 9, 3, 2, 6, 10, 44, 83, 28, 5, 1, 0, 36};

/**
 * 堆排序,將數(shù)組構(gòu)建成大堆二叉樹(shù)瓤鼻,即父節(jié)點(diǎn)比葉子節(jié)點(diǎn)大的二叉樹(shù)
 * 從小到大排序的話(huà)則每次直接將根節(jié)點(diǎn)放置到最后一位秉版,循環(huán)往復(fù)直至遍歷完所有為止
 */
private void heapSort() {

    // 先構(gòu)建一次大堆二叉樹(shù),做一個(gè)基本的排序
    buildMaxHeap();

    for (int i = array.length - 1; i > 0; i--) {
        // 將最大值與最后一個(gè)位置的數(shù)交換
        exchangeValue(0, i);

        // 重新構(gòu)建大堆二叉樹(shù)娱仔,從0開(kāi)始往下檢測(cè)是否需要重新構(gòu)建大堆
        maxHeap(i, 0);
    }

}


/**
 * 構(gòu)建大堆二叉樹(shù)沐飘,從最底層開(kāi)始往上構(gòu)建游桩,最底層的父節(jié)點(diǎn)則是總長(zhǎng)度的一半
 */
private void buildMaxHeap() {
    int length = array.length;
    for (int i = length / 2 - 1; i >= 0; i--) {
        maxHeap(length, i);
    }
}


/**
 * 構(gòu)建大堆二叉樹(shù)的節(jié)點(diǎn)牲迫,若修改了順序耐朴,則遞歸重新構(gòu)建下一層
 *
 * @param length 構(gòu)建數(shù)據(jù)數(shù)組長(zhǎng)度
 * @param node 構(gòu)建堆排序的父節(jié)點(diǎn)
 */
private void maxHeap(int length, int node) {
    int left = 2 * node + 1;
    int right = 2 * node + 2;
    // 找到一個(gè)節(jié)點(diǎn)和他的孩子節(jié)點(diǎn)中的最大值下標(biāo)
    int maxIndex = node;
    if (left < length && array[left] > array[maxIndex]) {
        maxIndex = left;
    }
    if (right < length && array[right] > array[maxIndex]) {
        maxIndex = right;
    }

    // 如果不是父節(jié)點(diǎn)最大,則跟最大的孩子節(jié)點(diǎn)交換
    if (maxIndex != node) {
        exchangeValue(node, maxIndex);
        maxHeap(length, maxIndex);
    }
}



/**
 * 交換兩個(gè)下標(biāo)的數(shù)值
 *
 * @param first  第一個(gè)下標(biāo)
 * @param second 第二個(gè)下標(biāo)
 */
private void exchangeValue(int first, int second) {
    int temp = array[first];
    array[first] = array[second];
    array[second] = temp;
}

  • 時(shí)間復(fù)雜度O(nlogn)


八盹憎、歸并排序

1筛峭、算法思想

  1. 將數(shù)據(jù)集合兩分拆開(kāi)
  2. 循環(huán)拆分至每組只剩一個(gè)為止
  3. 將拆分的數(shù)組進(jìn)行排序組合
  4. 兩兩合并,直至合并成一個(gè)數(shù)組即排序完成
  • 算法思想?yún)⒖枷聢D


    歸并排序

2陪每、代碼示例

private int[] array = {23, 11, 7, 29, 33, 59, 8, 20, 9, 3, 2, 6, 10, 44, 83, 28, 5, 1, 0, 36};

/**
 * 歸并排序:將數(shù)據(jù)集合兩分拆開(kāi)影晓,直至最小之后兩兩排序合并
 */
private void mergeSort() {
    int[] temp = new int[array.length];
    mergeSort(temp, 0, array.length - 1);
}


/**
 * 查分?jǐn)?shù)組,如果數(shù)組不能拆分了檩禾,則直接返回挂签,拆分之后合并
 */
private void mergeSort(int[] temp, int start, int end) {

    if (start >= end) {
        return;
    }

    int mid = (start + end) / 2;
    mergeSort(temp, start, mid);
    mergeSort(temp, mid + 1, end);
    mergeArray(temp, start, mid + 1, end);
}


/**
 * 將數(shù)組array,以mid為中心盼产,前后兩個(gè)數(shù)組進(jìn)行合并
 */
private void mergeArray(int[] temp, int start, int mid, int end) {

    // 定義指針下標(biāo)饵婆,記錄前后段是夠可以繼續(xù)移動(dòng)
    int minA = start, minB = mid;
    for (int i = start; i <= end; i++) {
        if (minA >= mid || minB > end) {
            // 如果a或者b用完了,則直接用對(duì)方的
            if (minA >= mid) {
                temp[i] = array[minB];
                minB++;
            } else {
                temp[i] = array[minA];
                minA++;
            }
        } else {
            // 都沒(méi)用完則比較大小
            if (array[minA] < array[minB]) {
                temp[i] = array[minA];
                minA++;
            } else {
                temp[i] = array[minB];
                minB++;
            }
        }
    }

    System.arraycopy(temp, start, array, start, end - start + 1);
}
  • 時(shí)間復(fù)雜度O(nlogn)


九戏售、基數(shù)排序

1侨核、算法思想

  1. 基數(shù)排序又稱(chēng)桶排序,具體思想就是將數(shù)值當(dāng)成數(shù)組的下標(biāo)保存
  2. 將所有數(shù)值拿出個(gè)位來(lái)比較灌灾,例如值為m的就存入下標(biāo)為m的數(shù)組中
  3. 將比較后的數(shù)組拿出即為按個(gè)位排序好的數(shù)組搓译,再將這個(gè)排序好的數(shù)組按十位排序
  4. 比較完個(gè)十百千所有位數(shù)以后即排序完成
  • 步驟一思想?yún)⒖紙D


    基數(shù)排序

2、代碼示例

private int[] array = {23, 11, 7, 29, 33, 59, 8, 20, 9, 3, 2, 6, 10, 44, 83, 28, 5, 1, 0, 36};

/**
 * 基數(shù)排序锋喜,先按個(gè)位將所有數(shù)字按照個(gè)位的值放入0-9的二維數(shù)組中些己,依次取出之后再按十位
 * 如此循環(huán)直至個(gè)十百千等等所有位數(shù)遍歷完為止
 */
private void radixSort() {

    // 定義二位數(shù)組用來(lái)存儲(chǔ)每個(gè)基數(shù)以及基數(shù)下的數(shù)值
    int[][] temp;

    // 定義一維數(shù)組記錄基數(shù)下保存了幾位
    int[] position;

    int radix = 1;

    while (true) {
        position = new int[10];
        temp = new int[10][array.length];

        for (int i = 0; i < array.length; i++) {
            int value = (array[i] / radix) % 10;
            temp[value][position[value]] = array[i];
            position[value]++;
        }

        // 判斷是否所有的數(shù)值都在0位上,都在0位上則表示排序完成
        if (position[0] == array.length) {
            break;
        }

        int index = 0;
        for (int i = 0; i < 10; i++) {
            for (int j = 0; j < position[i]; j++) {
                array[index] = temp[i][j];
                index++;
            }
        }

        radix = radix * 10;
    }
}
  • 基數(shù)排序的時(shí)間復(fù)雜度為O(d(n+r))嘿般,r為基數(shù)轴总,d為位數(shù)


?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個(gè)濱河市博个,隨后出現(xiàn)的幾起案子怀樟,更是在濱河造成了極大的恐慌,老刑警劉巖盆佣,帶你破解...
    沈念sama閱讀 211,743評(píng)論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件往堡,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡共耍,警方通過(guò)查閱死者的電腦和手機(jī)虑灰,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,296評(píng)論 3 385
  • 文/潘曉璐 我一進(jìn)店門(mén),熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)痹兜,“玉大人穆咐,你說(shuō)我怎么就攤上這事。” “怎么了对湃?”我有些...
    開(kāi)封第一講書(shū)人閱讀 157,285評(píng)論 0 348
  • 文/不壞的土叔 我叫張陵崖叫,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我拍柒,道長(zhǎng)心傀,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,485評(píng)論 1 283
  • 正文 為了忘掉前任拆讯,我火速辦了婚禮脂男,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘种呐。我一直安慰自己宰翅,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,581評(píng)論 6 386
  • 文/花漫 我一把揭開(kāi)白布爽室。 她就那樣靜靜地躺著堕油,像睡著了一般。 火紅的嫁衣襯著肌膚如雪肮之。 梳的紋絲不亂的頭發(fā)上掉缺,一...
    開(kāi)封第一講書(shū)人閱讀 49,821評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音戈擒,去河邊找鬼眶明。 笑死,一個(gè)胖子當(dāng)著我的面吹牛筐高,可吹牛的內(nèi)容都是我干的搜囱。 我是一名探鬼主播,決...
    沈念sama閱讀 38,960評(píng)論 3 408
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼柑土,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼蜀肘!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起稽屏,我...
    開(kāi)封第一講書(shū)人閱讀 37,719評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤扮宠,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后狐榔,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體坛增,經(jīng)...
    沈念sama閱讀 44,186評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,516評(píng)論 2 327
  • 正文 我和宋清朗相戀三年薄腻,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了收捣。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,650評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡庵楷,死狀恐怖罢艾,靈堂內(nèi)的尸體忽然破棺而出楣颠,到底是詐尸還是另有隱情,我是刑警寧澤咐蚯,帶...
    沈念sama閱讀 34,329評(píng)論 4 330
  • 正文 年R本政府宣布童漩,位于F島的核電站,受9級(jí)特大地震影響仓蛆,放射性物質(zhì)發(fā)生泄漏睁冬。R本人自食惡果不足惜挎春,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,936評(píng)論 3 313
  • 文/蒙蒙 一看疙、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧直奋,春花似錦能庆、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,757評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至邮绿,卻和暖如春渠旁,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背船逮。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,991評(píng)論 1 266
  • 我被黑心中介騙來(lái)泰國(guó)打工顾腊, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人挖胃。 一個(gè)月前我還...
    沈念sama閱讀 46,370評(píng)論 2 360
  • 正文 我出身青樓杂靶,卻偏偏與公主長(zhǎng)得像,于是被迫代替她去往敵國(guó)和親酱鸭。 傳聞我的和親對(duì)象是個(gè)殘疾皇子吗垮,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,527評(píng)論 2 349

推薦閱讀更多精彩內(nèi)容

  • 概述排序有內(nèi)部排序和外部排序,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進(jìn)行排序凹髓,而外部排序是因排序的數(shù)據(jù)很大烁登,一次不能容納全部的...
    Luc_閱讀 2,259評(píng)論 0 35
  • 概述 排序有內(nèi)部排序和外部排序,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進(jìn)行排序蔚舀,而外部排序是因排序的數(shù)據(jù)很大防泵,一次不能容納全部...
    蟻前閱讀 5,170評(píng)論 0 52
  • 概述:排序有內(nèi)部排序和外部排序,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進(jìn)行排序蝗敢,而外部排序是因排序的數(shù)據(jù)很大捷泞,一次不能容納全部...
    每天刷兩次牙閱讀 3,729評(píng)論 0 15
  • 概述 排序有內(nèi)部排序和外部排序,內(nèi)部排序是數(shù)據(jù)記錄在內(nèi)存中進(jìn)行排序寿谴,而外部排序是因排序的數(shù)據(jù)很大锁右,一次不能容納全部...
    閑云清煙閱讀 756評(píng)論 0 6
  • 在阿里云注冊(cè)了一個(gè)小型的服務(wù)器咏瑟,用于神經(jīng)網(wǎng)絡(luò)環(huán)境搭建拂到,以下是搭建的流程。 搭建環(huán)境: centos 6.5 pyt...
    小小白_Brain閱讀 2,423評(píng)論 0 0