国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

讀書(shū)筆記-《數(shù)據(jù)結(jié)構(gòu)與算法》-摘要4[插入排序]

這篇具有很好參考價(jià)值的文章主要介紹了讀書(shū)筆記-《數(shù)據(jù)結(jié)構(gòu)與算法》-摘要4[插入排序]。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

插入排序

核心:通過(guò)構(gòu)建有序序列,對(duì)于未排序序列,在已排序序列中從后向前掃描(對(duì)于單向鏈表則只能從前往后遍歷),找到相應(yīng)位置并插入。實(shí)現(xiàn)上通常使用in-place排序(需用到O(1)的額外空間)

  1. 從第一個(gè)元素開(kāi)始,該元素可認(rèn)為已排序
  2. 取下一個(gè)元素,對(duì)已排序數(shù)組從后往前掃描
  3. 若從排序數(shù)組中取出的元素大于新元素,則移至下一位置
  4. 重復(fù)步驟3,直至找到已排序元素小于或等于新元素的位置
  5. 插入新元素至該位置
  6. 重復(fù)2~5

讀書(shū)筆記-《數(shù)據(jù)結(jié)構(gòu)與算法》-摘要4[插入排序],讀書(shū)筆記,排序算法,算法

public class InsertionSort {
    public static void main(String[] args) {
        int unsortedArray[] = new int[]{6, 5, 3, 1, 8, 7, 2, 4};
        insertionSort(unsortedArray);
        System.out.println("After sort: ");
        for (int item : unsortedArray) {
            System.out.print(item + " ");
        }
    }

    public static void insertionSort(int[] array) {
        int len = array.length;
        for (int i = 0; i < len; i++) {
            int index = i, array_i = array[i];
            while (index > 0 && array[index - 1] > array_i) {
                array[index] = array[index - 1];
                index -= 1;
            }
            array[index] = array_i;

            /* print sort process */
            for (int item : array) {
                System.out.print(item + " ");
            }
            System.out.println();
        }
    }
}

輸出:

6 5 3 1 8 7 2 4 
5 6 3 1 8 7 2 4 
3 5 6 1 8 7 2 4 
1 3 5 6 8 7 2 4 
1 3 5 6 8 7 2 4 
1 3 5 6 7 8 2 4 
1 2 3 5 6 7 8 4 
1 2 3 4 5 6 7 8 
After sort: 
1 2 3 4 5 6 7 8

希爾排序

核心:基于插入排序,使數(shù)組中任意間隔為h的元素都是有序的,即將全部元素分為h個(gè)區(qū)域使用插入排序。其實(shí)現(xiàn)可類似于插入排序但使用不同增量。更高效的原因是它權(quán)衡了子數(shù)組的規(guī)模和有序性。

推薦大佬文章:排序算法 —— 希爾排序(圖文超詳細(xì))

從網(wǎng)上搞了一個(gè)動(dòng)圖

讀書(shū)筆記-《數(shù)據(jù)結(jié)構(gòu)與算法》-摘要4[插入排序],讀書(shū)筆記,排序算法,算法

(圖網(wǎng),侵刪)文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-759772.html

到了這里,關(guān)于讀書(shū)筆記-《數(shù)據(jù)結(jié)構(gòu)與算法》-摘要4[插入排序]的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 數(shù)據(jù)結(jié)構(gòu)算法-插入排序

    數(shù)據(jù)結(jié)構(gòu)算法-插入排序

    一、概念及其介紹 插入排序(InsertionSort),一般也被稱為直接插入排序。 對(duì)于少量元素的排序,它是一個(gè)有效的算法。插入排序是一種最簡(jiǎn)單的排序方法,它的基本思想是將一個(gè)記錄插入到已經(jīng)排好序的有序表中,從而一個(gè)新的、記錄數(shù)增 1 的有序表 。在其實(shí)現(xiàn)過(guò)程使用雙層

    2024年02月21日
    瀏覽(22)
  • 數(shù)據(jù)結(jié)構(gòu)與算法-插入&希爾&歸并

    數(shù)據(jù)結(jié)構(gòu)與算法-插入&希爾&歸并

    ? ? 一:排序引入 ?????我們通常從哪幾個(gè)方面來(lái)分析一個(gè)排序算法? ????????1.時(shí)間效率:決定了算法運(yùn)行多久,O(1) ????????2.空間復(fù)雜度: ????????3.比較次數(shù)交換次數(shù):排序肯定會(huì)牽涉到兩個(gè)操作,一個(gè)比較是肯定的。交換。 ????????4. 穩(wěn)定性 :這是

    2024年02月09日
    瀏覽(16)
  • 【數(shù)據(jù)結(jié)構(gòu)與算法】十大經(jīng)典排序算法-插入排序

    【數(shù)據(jù)結(jié)構(gòu)與算法】十大經(jīng)典排序算法-插入排序

    ?? 個(gè)人博客: www.hellocode.top ?? Java知識(shí)導(dǎo)航: Java-Navigate ?? CSDN: HelloCode. ?? 知乎 :HelloCode ?? 掘金 :HelloCode ?如有問(wèn)題,歡迎指正,一起學(xué)習(xí)~~ 插入排序(Insertion Sort)是一種簡(jiǎn)單直觀的排序算法,其基本思想是將一個(gè)記錄插入到已排好序的有序序列中,直到所有記錄

    2024年02月13日
    瀏覽(25)
  • 數(shù)據(jù)結(jié)構(gòu)與算法—插入排序&選擇排序

    數(shù)據(jù)結(jié)構(gòu)與算法—插入排序&選擇排序

    目錄 一、排序的概念 二、插入排序?? 1、直接插入排序? 特性總結(jié): 2、希爾排序 特性總結(jié): ?三、選擇排序 1、直接選擇排序? 特性總結(jié): 2、堆排序—排升序(建大堆) 向下調(diào)整函數(shù) 堆排序函數(shù) 特性總結(jié): 代碼完整版:? ?頭文件 ?函數(shù)文件 ?測(cè)試文件 排序 :所謂排序,

    2024年01月20日
    瀏覽(22)
  • 數(shù)據(jù)結(jié)構(gòu)算法練習(xí) 插入排序 冒泡排序

    插入排序 代碼如下? package main import \\\"fmt\\\" func main() { ? ? a := []int{4, 5, 6, 1, 3, 2}? ?? ? ? b := insert(a) ? ? for i := 0; i len(b); i++ { ? ? ? ? fmt.Println(b[i]) ? ? } } func insert(a []int) []int { ? ? if len(a) = 1 {? ? ? ? ? ? ? ? ? ?如果數(shù)組長(zhǎng)度小于等于1 不用排序直接返回? ? ? ? ? retur

    2024年02月08日
    瀏覽(29)
  • 數(shù)據(jù)結(jié)構(gòu)與算法:插入排序&希爾排序

    數(shù)據(jù)結(jié)構(gòu)與算法:插入排序&希爾排序

    假設(shè)現(xiàn)在你有一個(gè)有序的數(shù)組,你要把一個(gè)數(shù)據(jù)插入到數(shù)組中,保證插入后依然有序,要怎么做? 對(duì)于人來(lái)說(shuō),這個(gè)問(wèn)題就像是在整理?yè)淇伺?,瞄一眼就知道?yīng)該插入什么位置。但是對(duì)于程序來(lái)說(shuō),就需要一一對(duì)比,直到找到一個(gè)位置 左邊比它大,右邊比它小 ,就算找到了

    2024年01月17日
    瀏覽(38)
  • 【數(shù)據(jù)結(jié)構(gòu)與算法】:插入排序與希爾排序

    【數(shù)據(jù)結(jié)構(gòu)與算法】:插入排序與希爾排序

    ?? 個(gè)人主頁(yè) : Quitecoder ?? 專欄 : 數(shù)據(jù)結(jié)構(gòu)與算法 歡迎大家來(lái)到初階數(shù)據(jù)結(jié)構(gòu)的最后一小節(jié):排序 排序是一種將一組對(duì)象按照某種特定順序重新排列的過(guò)程。在計(jì)算機(jī)科學(xué)中,排序是數(shù)據(jù)處理中非?;厩抑匾牟僮鳎梢詭椭藗兏行У乩斫夂头治鰯?shù)據(jù)。排序的順序

    2024年03月18日
    瀏覽(29)
  • 【數(shù)據(jù)結(jié)構(gòu)與算法】插入排序和希爾排序

    【數(shù)據(jù)結(jié)構(gòu)與算法】插入排序和希爾排序

    ? 目錄 一.插入排序? InsertSort 基本思想 動(dòng)圖演示 ?特性總結(jié) 二.希爾排序? ShellSort 基本思想 圖例 特性總結(jié) 基本思想 把待排序的記錄按其關(guān)鍵碼值的大小逐個(gè)插入到一個(gè)已經(jīng)排好序的有序序列中,直到所有的記錄插入完為止,得到一個(gè)新的有序序列 。 當(dāng)插入第i(i=1)個(gè)元素

    2023年04月18日
    瀏覽(24)
  • 【數(shù)據(jù)結(jié)構(gòu)】常見(jiàn)排序算法——常見(jiàn)排序介紹、插入排序、直接插入排序、希爾排序

    【數(shù)據(jù)結(jié)構(gòu)】常見(jiàn)排序算法——常見(jiàn)排序介紹、插入排序、直接插入排序、希爾排序

    ??在計(jì)算機(jī)科學(xué)中,排序是將一組數(shù)據(jù)按照指定的順序排列的過(guò)程。排序算法由于執(zhí)行效率的不同可以分為多種不同的算法。 ??通常情況下,排序算法可以分為兩類,即 內(nèi)部排序和外部排序 。內(nèi)部排序是指數(shù)據(jù)全部加載到內(nèi)存中進(jìn)行排序,適用于數(shù)據(jù)量較小的情況,而

    2024年02月08日
    瀏覽(34)
  • 【數(shù)據(jù)結(jié)構(gòu)與算法】直接插入排序和希爾排序

    【數(shù)據(jù)結(jié)構(gòu)與算法】直接插入排序和希爾排序

    進(jìn)入了初階數(shù)據(jù)結(jié)構(gòu)的一個(gè)新的主題——排序。所謂排序,就是一串記錄, 按照其中的某幾個(gè)或某些的大?。ㄒ欢ǖ囊?guī)則) , 遞增或遞減排列起來(lái)的操作 。 排序的 穩(wěn)定性 :在一定的規(guī)則下,兩個(gè)值相等的元素,在排序算法處理前后的相對(duì)位置是否發(fā)生變化,如果相

    2024年04月13日
    瀏覽(61)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包