欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Python實(shí)現(xiàn)的幾個(gè)常用排序算法實(shí)例

系統(tǒng) 1755 0

前段時(shí)間為準(zhǔn)備百度面試惡補(bǔ)的東西,雖然最后還是被刷了,還是把那幾天的“戰(zhàn)利品”放點(diǎn)上來(lái),算法一直是自己比較薄弱的地方,以后還要更加努力啊。

下面用Python實(shí)現(xiàn)了幾個(gè)常用的排序,如快速排序,選擇排序,以及二路并歸排序等等。

復(fù)制代碼 代碼如下:

#encoding=utf-8
import random
from copy import copy

def directInsertSort(seq):
?""" 直接插入排序 """
?size = len(seq)
?for i in range(1,size):
??tmp, j = seq[i], i
??while j > 0 and tmp < seq[j-1]:
???seq[j], j = seq[j-1], j-1
??seq[j] = tmp
?return seq

def directSelectSort(seq):
?""" 直接選擇排序 """
?size = len(seq)
?for i in range(0,size - 1):
??k = i;j = i+1
??while j < size:
???if seq[j] < seq[k]:
????k = j
???j += 1
??seq[i],seq[k] = seq[k],seq[i]
?return seq

def bubbleSort(seq):
?"""冒泡排序"""
?size = len(seq)
?for i in range(1,size):
??for j in range(0,size-i):
???if seq[j+1] < seq[j]:
????seq[j+1],seq[j] = seq[j],seq[j+1]
?return seq

def _divide(seq, low, high):
?"""快速排序劃分函數(shù)"""
?tmp = seq[low]
?while low != high:
??while low < high and seq[high] >= tmp: high -= 1
??if low < high:
???seq[low] = seq[high]
???low += 1
??while low < high and seq[low] <= tmp: low += 1
??if low < high:
???seq[high] = seq[low]
???high -= 1
?seq[low] = tmp
?return low

def _quickSort(seq, low, high):
?"""快速排序輔助函數(shù)"""
?if low >= high: return
?mid = _divide(seq, low, high)
?_quickSort(seq, low, mid - 1)
?_quickSort(seq, mid + 1, high)

def quickSort(seq):
?"""快速排序包裹函數(shù)"""
?size = len(seq)
?_quickSort(seq, 0, size - 1)
?return seq

def merge(seq, left, mid, right):
?tmp = []
?i, j = left, mid
?while i < mid and j <= right:
??if seq[i] < seq[j]:
???tmp.append(seq[i])
???i += 1
??else:
???tmp.append(seq[j])
???j += 1
?if i < mid: tmp.extend(seq[i:])
?if j <= right: tmp.extend(seq[j:])

?seq[left:right+1] = tmp[0:right-left+1]

def _mergeSort(seq, left, right):
?if left == right:
??return
?else:
??mid = (left + right) / 2
??_mergeSort(seq, left, mid)
??_mergeSort(seq, mid + 1, right)
??merge(seq, left, mid+1, right)

#二路并歸排序
def mergeSort(seq):
?size = len(seq)
?_mergeSort(seq, 0, size - 1)
?return seq

if __name__ == '__main__':
?s = [random.randint(0,100) for i in range(0,20)]
?print s
?print "\n"
?print directSelectSort(copy(s))
?print directInsertSort(copy(s))
?print bubbleSort(copy(s))
?print quickSort(copy(s))
?print mergeSort(copy(s))


運(yùn)行結(jié)果如下:
復(fù)制代碼 代碼如下:

E:\python_project\practice>sorting.py
[10, 47, 56, 76, 64, 84, 26, 8, 47, 51, 88, 81, 32, 95, 91, 29, 28, 69, 61, 45]


[8, 10, 26, 28, 29, 32, 45, 47, 47, 51, 56, 61, 64, 69, 76, 81, 84, 88, 91, 95]
[8, 10, 26, 28, 29, 32, 45, 47, 47, 51, 56, 61, 64, 69, 76, 81, 84, 88, 91, 95]
[8, 10, 26, 28, 29, 32, 45, 47, 47, 51, 56, 61, 64, 69, 76, 81, 84, 88, 91, 95]
[8, 10, 26, 28, 29, 32, 45, 47, 47, 51, 56, 61, 64, 69, 76, 81, 84, 88, 91, 95]
[8, 10, 26, 28, 29, 32, 45, 47, 47, 51, 56, 61, 64, 69, 76, 81, 84, 88, 91, 95]


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 无码色情影片视频在线看免费 | 国产精品久久久久无码av | 久久精品国产一区二区电影 | 精品久久中文久久久 | 国内精品一区二区在线观看 | 亚瑟天堂久久一区二区影院 | 亚洲成人av在线 | 在线一区二区三区做爰视频网站 | 日韩视频高清 | 久久久久无码国产精品一区 | 国产一三区A片在线播放 | 国产精品成人av | 色接久久 | 久久穴| 日本无码少妇波多野结衣 | 男女性爽大片在线观看 | 国产精品九九九久久九九 | 欧美一区二区在线视频 | 亚洲国产片高清在线观看 | 日韩欧美中文在线 | 免费在线一级毛片 | 亚洲国产精久久久久久久 | 欧美成人一区在线 | 天天摸天天操免费播放小视频 | 亚洲成人午夜在线 | 国产91色在线 | 亚洲 | 中日欧洲精品视频在线 | 草草线在成人免费视频 | 亚洲国产精品久久久久秋霞蜜臀 | 麻豆污视频 | 免费在线黄色电影 | 午夜免费直播 | 黄视频网站大全 | 日本免费在线一区 | 日本大片在线免费观看 | 国产成人在线视频 | 在线欧美日韩 | 三级毛片在线看 | a在线免费观看 | 久久综合网址 | 亚洲精品福利 |