日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
創(chuàng)新互聯(lián)Python教程:python中如何進行希爾排序?

如果問大家用于科學(xué)計算,屬于插入類排序的縮小增量法是什么?你知道嗎?其實是希爾排序法。 希爾排序是希爾(Donald Shell)于1959年提出的一種排序算法。希爾排序也是一種插入排序,是將整個無序列分割成若干小的子序列分別進行插入排序的方法。它是簡單插入排序經(jīng)過改進之后的一個更高效的版本,也稱為縮小增量排序,同時該算法是沖破O(n2)的第一批算法之一。本文會向大家向大家介紹python中的希爾排序及其使用代碼。

在黔江等地區(qū),都構(gòu)建了全面的區(qū)域性戰(zhàn)略布局,加強發(fā)展的系統(tǒng)性、市場前瞻性、產(chǎn)品創(chuàng)新能力,以專注、極致的服務(wù)理念,為客戶提供成都網(wǎng)站制作、成都網(wǎng)站設(shè)計、外貿(mào)營銷網(wǎng)站建設(shè) 網(wǎng)站設(shè)計制作按需規(guī)劃網(wǎng)站,公司網(wǎng)站建設(shè),企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計,營銷型網(wǎng)站建設(shè),成都外貿(mào)網(wǎng)站建設(shè),黔江網(wǎng)站建設(shè)費用合理。

希爾排序

背景:插入排序在小規(guī)模數(shù)據(jù)、數(shù)據(jù)基本有序時效率較高

思想:將序列分為若干子序列進行插入排序,待序列基本有序時,對整體進行插入排序

代碼:

# python實現(xiàn)希爾排序(插入排序的一種)
# 先宏觀進行調(diào)整,在進行微觀調(diào)整
 
def shellSort(lst, k, reverse=False):
    length = len(lst)
    dk = k # 設(shè)置一個增量dk
    while dk > 0:
        for i in range(dk, length):
            temp = lst[i]
            j = i
            while j >= dk and lst[j - dk] > temp:
                lst[j] = lst[j - dk]
                j -= dk
            lst[j] = temp
        dk = int(dk / 2)
    if reverse == False:
        return lst
    else:
        lst.reverse()
        return lst

輸出:

test1 = [19, 21, 4, 6, 25, 3, 99, 67, 12]
test2 = [19, 21, 4, 6, 25, 3, 99, 67, 12]
data1 = shellSort(test1, 7)
data2 = shellSort(test2, 2, True)
print("從小到大:", data1)
print("從大到?。?, data2)

希爾排序在最優(yōu)時間復(fù)雜會根據(jù)步長序列的不同而不同,最壞時間復(fù)雜度是O(n^2),在操作過程中是不穩(wěn)定的,要注意哦~


新聞名稱:創(chuàng)新互聯(lián)Python教程:python中如何進行希爾排序?
文章位置:http://m.5511xx.com/article/dpecpeo.html