乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      用Python實(shí)現(xiàn)插入排序和選擇排序!

       flyk0tcfb46p9f 2019-05-13

      這篇是我關(guān)于用Python實(shí)現(xiàn)50個(gè)經(jīng)典算法代碼的第一篇文章,主要目的是在自己手寫(xiě)一遍算法之后,在文章中對(duì)算法的細(xì)節(jié)進(jìn)行總結(jié)來(lái)加以鞏固。

      話不多說(shuō),讓我們從最基本的排序算法開(kāi)始吧

      插入排序

      如下圖所示,插入排序的實(shí)現(xiàn)思路顧名思義,就是 不斷地在一個(gè)已經(jīng)是有序的數(shù)組中,尋找合適位置并插入新元素 。

      Python學(xué)習(xí)交流群:1004391443,這里有資源共享,技術(shù)解答,還有小編從最基礎(chǔ)的Python資料到項(xiàng)目實(shí)戰(zhàn)的學(xué)習(xí)資料都有整理,希望能幫助你更了解python,學(xué)習(xí)python。

      具體實(shí)現(xiàn)步驟為:

      首先我們把整個(gè)數(shù)組拆分為有序區(qū)間和未排序區(qū)間,有序區(qū)間在插入排序一開(kāi)始只有一個(gè)元素,就是數(shù)組的第一個(gè)元素。

      接在有序區(qū)間之后的一個(gè)元素就是準(zhǔn)備插入的元素,在圖中就是標(biāo)為綠色的元素,在有序區(qū)間內(nèi)尋找位置并插入。

      其尋找邏輯為:從后往前依次進(jìn)行比較,如果待插入元素大于當(dāng)前元素,則將待插入元素插入到當(dāng)前元素的后一位,如果待插入元素小于當(dāng)前元素,則將當(dāng)前元素后移一位。不斷重復(fù)該過(guò)程直至到數(shù)組的最后一位

      其實(shí)現(xiàn)的具體代碼為:

      def insertion_sort(a): length = len(a) if length <=1: return for i in range(1,length): j = i-1 value = a[i] while j >=0: if a[j]<='' pre=''>

      時(shí)間復(fù)雜計(jì)算為:我們需要將整個(gè)數(shù)組遍歷一遍,所以這一部分為O(n),在每一次遍歷中都要執(zhí)行一次插入操作,其時(shí)間復(fù)雜度為O(n),所以總時(shí)間復(fù)雜度為O(n2)

      選擇排序

      選擇排序跟插入排序算法類(lèi)似,都是將數(shù)組分為有序區(qū)間和未排序區(qū)間,區(qū)別在于插入排序是將一個(gè)新元素插入到有序區(qū)間內(nèi),而選擇排序則是在未排序區(qū)間中找到最小元素,并交換到有序區(qū)間之后。

      實(shí)現(xiàn)代碼為:

      def selection_sort(a): length = len(a) if length <=1: return for i in range(0,length-1): min_value = a[i] min_index = i j = i+1 while j<=''> min_value = a[j] min_index = j j += 1 a[i],a[min_index] = a[min_index],a[i] return a

      時(shí)間復(fù)雜度計(jì)算:數(shù)組長(zhǎng)度為n,一共需要尋找n次最小值,每次尋找最小值都要遍歷未排序區(qū)間一次,其時(shí)間復(fù)雜度為O(n),乘以n次為O(n2)

        本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買(mǎi)等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評(píng)論

        發(fā)表

        請(qǐng)遵守用戶 評(píng)論公約

        類(lèi)似文章 更多