久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

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

 flyk0tcfb46p9f 2019-05-13

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

話不多說,讓我們從最基本的排序算法開始吧

插入排序

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

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

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

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

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

其尋找邏輯為:從后往前依次進行比較,,如果待插入元素大于當前元素,則將待插入元素插入到當前元素的后一位,,如果待插入元素小于當前元素,,則將當前元素后移一位。不斷重復該過程直至到數(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ù)組遍歷一遍,,所以這一部分為O(n),,在每一次遍歷中都要執(zhí)行一次插入操作,其時間復雜度為O(n),,所以總時間復雜度為O(n2)

選擇排序

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

實現(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ù)組長度為n,一共需要尋找n次最小值,,每次尋找最小值都要遍歷未排序區(qū)間一次,,其時間復雜度為O(n),乘以n次為O(n2)

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

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多