您好,登錄后才能下訂單哦!
這篇文章主要介紹了python插入排序運(yùn)行過程的示例分析,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
為了保證插入后數(shù)據(jù)仍然有序,需要確定插入數(shù)據(jù)的位置。
1、將待排序的數(shù)據(jù)分為兩個區(qū)間。
有序區(qū)間和無序區(qū)間。初始有序區(qū)間只包含一個元素,即數(shù)組的第一個元素,其他的是無序區(qū)間。
2、依次從無序區(qū)間中選擇一個元素,在有序區(qū)間中找到合適的插入位置插入,確保排序區(qū)間的數(shù)據(jù)始終有序。
3、重復(fù)這個過程。
直到無序區(qū)間的元素為空,算法結(jié)束。
實(shí)例
#encoding=utf-8 def insert_sort(data_list): ''' 無優(yōu)化版 ''' count=0 #統(tǒng)計(jì)循環(huán)次數(shù) length = len(data_list) for i in range(1,length ): #默認(rèn)第一個位置的元素是已排序區(qū)間,因此下標(biāo)從 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
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“python插入排序運(yùn)行過程的示例分析”這篇文章對大家有幫助,同時也希望大家多多支持億速云,關(guān)注億速云行業(yè)資訊頻道,更多相關(guān)知識等著你來學(xué)習(xí)!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。