3.插入排序

1.介紹:插入式排序?qū)儆趦?nèi)部排序法,是對于欲排序的元素以插入的方式找尋該元素的適當(dāng)位置,以達(dá)到排序的目的。

2.思想:插入排序(InsertionSorting)的基本思想是:把n個待排序的元素看成為一個有序表和一個無序表,開始時有序表中只包含一個元素,無序表中包含有n-1個元素,排序過程中每次從無序表中取出第一個元素,把它的排序碼依次與有序表元素的排序碼進(jìn)行比較,將它插入到有序表中的適當(dāng)位置,使之成為新的有序表。

3.動圖來源:https://www.toutiao.com/a6593273307280179715/?iid=6593273307280179715&wid=1621761486436

插入排序

4.代碼實現(xiàn)

import random
import time
def sorted(sortlist):
    for i in range(len(sortlist)-1):        #curIndex表示操作的書即把哪個數(shù)插入到列表里面去
        curIndex = i + 1
        curValue = sortlist[curIndex]       #記錄這個值后面就不會找不到
        while (curIndex > 0 and curValue < sortlist[curIndex-1]):       
                                        #curIndex > 0保證不越界,curValue < sortlist[curIndex-1]則是判斷往哪個位置插入
            curIndex = curIndex - 1
            sortlist[curIndex+1] = sortlist[curIndex]
        sortlist[curIndex] = curValue
        # print(sortlist)

l = []
print (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
for i in range(80000):
    l.append(int(random.random()*100000000))
print (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
sorted(l)
print (time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()))
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 許久沒有寫點東西了,答辯之后人也變得松懈。今天看到簡書又有人點贊之前記錄的冒泡排序[https://www.jia...
    DuBetter閱讀 5,272評論 0 5
  • 一、原理 1.直接插入排序(Straight Insertion Sort)1.先將數(shù)組arr分為左右兩部分,左側(cè)...
    星光下的胖子閱讀 438評論 0 0
  • 基本思想 將一個記錄插入到已排序好的有序表中,從而得到一個新記錄數(shù)增1的有序表。即:先將序列的第1個記錄看成是一個...
    水欣閱讀 263評論 0 0
  • 基本思想:將一個記錄插入到已排序好的有序表中,從而得到一個新,記錄數(shù)增1的有序表。即:先將序列的第1個記錄看成是一...
    聰明的小一休閱讀 263評論 0 0
  • 2018-09-19 思路: 將一個記錄插入到已排序好的有序表中,從而得到一個新,記錄數(shù)增1的有序表。即:先將序列...
    vsu閱讀 185評論 0 0

友情鏈接更多精彩內(nèi)容