python排序之一插入排序
首先什么是插入排序,個人理解就是拿隊列中的一個元素與其之前的元素一一做比較交根據大小換位置的過程好了我們先來看看代碼
首先就是一個無序的列表先打印它好讓排序后有對比效果,然后我后面注釋工作流程,下面我來一一說明下其運行流程,開始先聲明一個插入排序的函數名insert_sort,要傳入的參數為lis,count來獲取列表lis長度len(lis),然后我們要開始寫循環對比for i in range(從1到列表長度count)然后把列表下標為一位置的數也就是28(lis下標默認是從0開始然后才是1,2,3,...)j用來取i的前面一個位子i-1等於0,這用遞減的方式來比對,j=0進入循環,判斷lis[0]也就是85 大於 28,也就是前面的數只要比后面的數字大就交換位置,這里就lis[0+1]也就是lis[1]28 被lis[0]85給賦值了(可以簡單理解為a=1,b=0 if a>b a,b=b,a等同於a=0,b=1),j: 0-1=-1循環結束,當然如果還是不清楚改變如下代碼
首先你要注釋#號代碼,然后在循環結束打印出每次循環玩的結果就可以看得很清楚,這里可以清楚看到每一次循環完成都會改變前面幾個數字的順序(尤其注意看11的位置改變),其實也就是每次拿K去一次和前面的值比較,只要比K大位置就交換。在直接的就是與前面的數對比,只要它比你大就換位置。打個比方你買車,看了很多種,一去了解發現好多東西要配,貨比三家的去問發現這第二家折扣大,你想買的欲望增加,就會把第一家想買的排在后面,優先第二家,結果第三家一站式服務全部跟你配齊,折扣也不錯,這時候你心里會比較三家最想去的一家向前排,不好的就仍后面有個順序1,2,3。
感謝收看,下次再見。