新聞中心
為了保證插入后數(shù)據(jù)仍然有序,需要確定插入數(shù)據(jù)的位置。

洛寧網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、自適應(yīng)網(wǎng)站建設(shè)等網(wǎng)站項目制作,到程序開發(fā),運營維護。創(chuàng)新互聯(lián)公司2013年成立到現(xiàn)在10年的時間,我們擁有了豐富的建站經(jīng)驗和運維經(jīng)驗,來保證我們的工作的順利進行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
1、將待排序的數(shù)據(jù)分為兩個區(qū)間。
有序區(qū)間和無序區(qū)間。初始有序區(qū)間只包含一個元素,即數(shù)組的第一個元素,其他的是無序區(qū)間。
2、依次從無序區(qū)間中選擇一個元素,在有序區(qū)間中找到合適的插入位置插入,確保排序區(qū)間的數(shù)據(jù)始終有序。
3、重復這個過程。
直到無序區(qū)間的元素為空,算法結(jié)束。
實例
#encoding=utf-8
def insert_sort(data_list):
'''
無優(yōu)化版
'''
count=0 #統(tǒng)計循環(huán)次數(shù)
length = len(data_list)
for i in range(1,length ): #默認第一個位置的元素是已排序區(qū)間,因此下標從 1 開始
tmp = data_list[i] #待插入的數(shù)據(jù)
j = i
while j > 0: #從已排序區(qū)間查找插入位置
count +=1
if tmp < data_list[j-1]:
data_list[j] = data_list[j-1] #元素向后移動,騰出插入位置
else:
break
j -= 1
data_list[j] = tmp #插入操作
print(data_list)
print(f"總循環(huán)次數(shù)為 {count}")
return data_list
以上就是python插入排序的運行過程,希望對大家有所幫助。更多Python學習指路:創(chuàng)新互聯(lián)Python教程
本文教程操作環(huán)境:windows7系統(tǒng)、Python 3.9.1,DELL G3電腦。
網(wǎng)站標題:創(chuàng)新互聯(lián)Python教程:python插入排序的運行過程
網(wǎng)頁網(wǎng)址:http://m.fisionsoft.com.cn/article/coejesd.html


咨詢
建站咨詢
