溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

python插入排序運(yùn)行過程的示例分析

發(fā)布時間:2021-09-08 13:36:36 來源:億速云 閱讀:97 作者:小新 欄目:編程語言

這篇文章主要介紹了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í)!

向AI問一下細(xì)節(jié)

免責(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)容。

AI