這篇文章給大家分享的是有關(guān)python中希爾排序怎么實(shí)現(xiàn)的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。
我們提供的服務(wù)有:成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、微信公眾號(hào)開(kāi)發(fā)、網(wǎng)站優(yōu)化、網(wǎng)站認(rèn)證、廬江ssl等。為成百上千企事業(yè)單位解決了網(wǎng)站和推廣的問(wèn)題。提供周到的售前咨詢和貼心的售后服務(wù),是有科學(xué)管理、有技術(shù)的廬江網(wǎng)站制作公司
希爾排序
希爾排序是以插入排序?yàn)榛A(chǔ)的,對(duì)無(wú)序表進(jìn)行“間隔”劃分子列表,每個(gè)子列表都執(zhí)行插入排序
先分組,再插入
希爾排序又叫“遞減增量排序”,是一種非穩(wěn)定排序法
希爾排序的基本思想:先將整個(gè)列表分割成若干個(gè)子列表,對(duì)每個(gè)子列表分別進(jìn)行插入排序。然后減小間隔,劃分成更多的子列表,直到間隔為1。待整個(gè)列表接近有序時(shí),再對(duì)全體列表進(jìn)行插入排序
通過(guò)設(shè)定間隔劃分子列表,相同間隔的元素比對(duì),若后面的小,則交換兩個(gè)元素。每一趟都將間隔縮小,最后一趟的時(shí)候間隔為1就是標(biāo)準(zhǔn)的插入排序,由于前面已經(jīng)將列表處理的接近有序了,所以最后一趟只需要少數(shù)移動(dòng)就可完成排序。
子列表的間隔一般從 n/2開(kāi)始,每一趟倍增 n/4, n/8……1
感謝各位的閱讀!關(guān)于“python中希爾排序怎么實(shí)現(xiàn)”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!