最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python實(shí)現(xiàn)希爾排序算法的原理與用法實(shí)例分析

 更新時(shí)間:2017年11月23日 10:04:15   作者:Alex Yu  
這篇文章主要介紹了Python實(shí)現(xiàn)希爾排序算法,簡單講述了希爾排序的原理并結(jié)合具體實(shí)例形式分析了Python希爾排序的具體實(shí)現(xiàn)方法與使用技巧,需要的朋友可以參考下

本文實(shí)例講述了Python實(shí)現(xiàn)希爾排序算法的原理與用法。分享給大家供大家參考,具體如下:

希爾排序(Shell Sort)是插入排序的一種。也稱縮小增量排序,是直接插入排序算法的一種更高效的改進(jìn)版本。

希爾排序的基本思想是:先將整個(gè)待排元素序列分割成若干個(gè)子序列(由相隔某個(gè)“增量”的元素組成的)分別進(jìn)行直接插入排序,然后依次縮減增量再進(jìn)行排序,待整個(gè)序列中的元素基本有序(增量足夠?。r(shí),再對(duì)全體元素進(jìn)行一次直接插入排序。因?yàn)橹苯硬迦肱判蛟谠鼗居行虻那闆r下(接近最好情況),效率是很高的,因此希爾排序在時(shí)間效率上比前兩種方法有較大提高。(插入排序可參考前面一篇Python插入排序算法

Python實(shí)現(xiàn)代碼如下:

#-*- coding: UTF-8 -*-
import numpy as np
def ShellSort(a):
  gap = a.size / 2
  while gap >= 1:
    for i in xrange(gap,a.size, gap):
      for j in xrange(i,0, -gap):
        if a[j-gap] > a[j]:
          a[j-gap] , a[j] = a[j], a[j-gap]
        else:
          break
    gap /= 2
if __name__ == '__main__':
  a = np.random.randint(0, 10, size = 10)
  print "Before sorting..."
  print "---------------------------------------------------------------"
  print a
  print "---------------------------------------------------------------"
  ShellSort(a)
  print "After sorting..."
  print "---------------------------------------------------------------"
  print a
  print "---------------------------------------------------------------"

運(yùn)行結(jié)果:

更多關(guān)于Python相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《Python數(shù)據(jù)結(jié)構(gòu)與算法教程》、《Python加密解密算法與技巧總結(jié)》、《Python編碼操作技巧總結(jié)》、《Python函數(shù)使用技巧總結(jié)》、《Python字符串操作技巧匯總》及《Python入門與進(jìn)階經(jīng)典教程

希望本文所述對(duì)大家Python程序設(shè)計(jì)有所幫助。

相關(guān)文章

  • Windows環(huán)境下如何使用Pycharm運(yùn)行sh文件

    Windows環(huán)境下如何使用Pycharm運(yùn)行sh文件

    這篇文章主要介紹了Windows環(huán)境下如何使用Pycharm運(yùn)行sh文件,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2023-02-02
  • python中列表的切片與修改知識(shí)點(diǎn)總結(jié)

    python中列表的切片與修改知識(shí)點(diǎn)總結(jié)

    在本篇文章里小編給大家分享了關(guān)于python中列表的切片與修改的相關(guān)知識(shí)點(diǎn)內(nèi)容,需要的朋友們學(xué)習(xí)下。
    2019-07-07
  • python算法加密 pyarmor與docker

    python算法加密 pyarmor與docker

    這篇文章主要介紹了python算法加密 pyarmor與docker,,PyArmor 是一個(gè)用于加密和保護(hù) Python 腳本的工具。它能夠在運(yùn)行時(shí)刻保護(hù) Python腳本的二進(jìn)制代碼不被泄露,設(shè)置加密后Python源代碼的有效期限,綁 定加密后的Python源代碼到硬盤、網(wǎng)卡等硬件設(shè)備
    2022-06-06
  • python查看模塊安裝位置的方法

    python查看模塊安裝位置的方法

    今天小編就為大家分享一篇python查看模塊安裝位置的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Python爬蟲突破反爬蟲機(jī)制知識(shí)點(diǎn)總結(jié)

    Python爬蟲突破反爬蟲機(jī)制知識(shí)點(diǎn)總結(jié)

    在本篇文章里小編給大家整理了一篇關(guān)于Python爬蟲突破反爬蟲機(jī)制知識(shí)點(diǎn)總結(jié)內(nèi)容,有需要的朋友們可以跟著學(xué)習(xí)下。
    2021-11-11
  • 用python爬取分析淘寶商品信息詳解技術(shù)篇

    用python爬取分析淘寶商品信息詳解技術(shù)篇

    這篇文章主要介紹了用python爬取分析淘寶商品信息的技術(shù),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-08-08
  • Python獲取DLL和EXE文件版本號(hào)的方法

    Python獲取DLL和EXE文件版本號(hào)的方法

    這篇文章主要介紹了Python獲取DLL和EXE文件版本號(hào)的方法,實(shí)例分析了Python獲取系統(tǒng)文件信息的技巧,需要的朋友可以參考下
    2015-03-03
  • python的json中方法及jsonpath模塊用法分析

    python的json中方法及jsonpath模塊用法分析

    這篇文章主要介紹了python的json中方法及jsonpath模塊用法,結(jié)合實(shí)例形式分析了Python json相關(guān)模塊與常見方法使用技巧,需要的朋友可以參考下
    2019-12-12
  • 用pytorch的nn.Module構(gòu)造簡單全鏈接層實(shí)例

    用pytorch的nn.Module構(gòu)造簡單全鏈接層實(shí)例

    今天小編就為大家分享一篇用pytorch的nn.Module構(gòu)造簡單全鏈接層實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • Python GUI布局尺寸適配方法

    Python GUI布局尺寸適配方法

    今天小編就為大家分享一篇Python GUI布局尺寸適配方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10

最新評(píng)論

柞水县| 启东市| 织金县| 蕉岭县| 安丘市| 柞水县| 盐山县| 铜陵市| 漳浦县| 云浮市| 资源县| 银川市| 高碑店市| 天等县| 旬邑县| 芦山县| 贞丰县| 卓尼县| 张家川| 梁河县| 永兴县| 雷波县| 鄄城县| 长宁县| 精河县| 雅江县| 黎川县| 潞城市| 伽师县| 赞皇县| 达尔| 浪卡子县| 措勤县| 深圳市| 通化县| 甘洛县| 开原市| 南江县| 临江市| 陆丰市| 峨边|