日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > python >内容正文

python

python内置排序算法_2021-01-05 排序算法(Python语言实现)

發(fā)布時(shí)間:2025/3/21 python 24 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python内置排序算法_2021-01-05 排序算法(Python语言实现) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1.二分查找

def binary_search(li,val):

left = 0

right = len(li) - 1

while left <= right: #候選區(qū)有值

mid = (left + right) // 2

if li[mid] == val:

return mid

elif li[mid] > val: #待查找值在mid左側(cè)

right = mid - 1

else: #li[mid] < val 待查找值在mid右側(cè)

left = mid + 1

else:

return None

the_list = [1,3,5,7,9]

print(binary_search(the_list,7))`

2.冒泡排序

import random

def bubble_sort(li):

for i in range(len(li)-1): #第i趟

exchange = False

for j in range(len(li)-i-1):

if li[j] > li[j+1]:

li[j],li[j+1] = li[j+1],li[j]

exchange = True

if not exchange:

return

def bubble_reverse_sort(li):

for i in range(len(li)-1): #第i趟

exchange = False

for j in range(len(li)-i-1):

if li[j] < li[j+1]:

li[j],li[j+1] = li[j+1],li[j]

exchange = True

if not exchange:

return

the_list = [random.randint(0,100) for i in range(10)]

print(the_list)

bubble_sort(the_list)

print(the_list)

bubble_reverse_sort(the_list)

print(the_list)

3.選擇排序

def select_sort_simple(li):

li_new = []

for i in range(len(li)):

min_val = min(li)

li_new.append(min_val)

li.remove(min_val)

return li_new

def select_sort(li):

for i in range(len(li)-1): #i是第幾趟

min_loc = i

for j in range(i+1,len(li)):

if li[j] < li[min_loc]:

min_loc = j

li[i],li[min_loc] = li[min_loc],li[i]

return li

li = [3,2,4,1,5,6,8,7,9]

print(select_sort(li))

4.插入排序

def insert_sort(li):

for i in range(1,len(li)): #i表示摸到的牌的下標(biāo)

tmp = li[i]

j = i - 1 #j指的是手里的牌的下標(biāo)

while j >= 0 and li[j] > tmp:

li[j+1] = li[j]

j -= 1

li[j+1] = tmp

print(li)

li =[3,2,4,1,5,7,9,6,8]

insert_sort(li)

print(li)

5.快速排序

def partition(li,left,right):

tmp = li[left]

while left < right:

while left = tmp: #從右邊找比tmp小的數(shù)

right -= 1 #往左走一步

li[left] = li[right] #把右邊的值移到左邊空位

while left < right and li[left] <= tmp:

left += 1

li[right] = li[left] #把左邊的值移到右邊空位上

li[left] = tmp #把tmp歸位

return left

def quick_sort(li,left,right):

if left < right: #至少兩個(gè)元素

mid = partition(li,left,right)

quick_sort(li,left,mid-1)

quick_sort(li,mid+1,right)

li = [5,7,4,6,3,1,2,9,8]

quick_sort(li,0,len(li)-1)

print(li)

6.堆排序

def sift(li,low,high):

"""

li:列表

low:堆的根節(jié)點(diǎn)位置

high:堆的最后一個(gè)元素的位置

"""

i = low #i開始指向根節(jié)點(diǎn)

j = 2*i+1 #j開始是左孩子

tmp = li[low] #把堆頂存起來

while j <= high: #只要j位置有數(shù)

if j + 1 <= high and li[j+1] > li[j]: #如果右孩子有并且比較大

j = j + 1 #j指向右孩子

if li[j] > tmp:

li[i] = li[j]

i = j #往下看一層

j = 2*i+1

else: #tmp更大,把tmp放到i的位置上

li[i] = tmp

break

else:

li[i] = tmp #把tmp放到葉子節(jié)點(diǎn)上

def heap_sort(li):

n = len(li)

for i in range((n-2)//2,-1,-1):

#i表示建堆的時(shí)候調(diào)整的部分的根的下標(biāo)

sift(li,i,n-1)

#建堆完成了

for i in range(n-1,-1,-1):

#i指向當(dāng)前堆的最后一個(gè)元素

li[0],li[i] = li[i],li[0]

sift(li,0,i-1) #i-1是新的high

li = [i for i in range(100)]

import random

random.shuffle(li)

print(li)

heap_sort(li)

print(li)

Python堆排序內(nèi)置模塊

import heapq

import random

li = list(range(100))

random.shuffle(li)

print(li)

heapq.heapify(li) #建堆

n = len(li)

for i in range(n):

print(heapq.heappop(li),end=',')

總結(jié)

以上是生活随笔為你收集整理的python内置排序算法_2021-01-05 排序算法(Python语言实现)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 少妇偷人精品无码人妻 | 婷婷色综合 | 国产波霸爆乳一区二区 | 在线免费一区 | 亚洲jlzzjizz少妇| 91av官网| 亚洲永久免费精品 | 不卡福利视频 | 在线视频天堂 | 日本免费一区二区三区视频 | 色综合色综合色综合 | 中文字幕在线资源 | 国产无遮挡又黄又爽又色视频 | 黄色片免费在线 | aaa大片十八岁禁止 中文字幕亚洲在线观看 | 国产日产亚洲系列最新 | 国产视频在线一区二区 | 激情午夜天| 天堂欧美城网站网址 | 国产亚洲精品av | 免费aa视频 | 亚洲成人av电影网站 | 97毛片| 影音先锋在线国产 | 久久久www免费人成人片 | 色在线视频观看 | h片在线免费观看 | www国产| 自拍偷拍色图 | 91免费播放| 久久久亚洲精品无码 | 日本泡妞xxxx免费视频软件 | 成人黄色大片 | 国产91大片 | 国产精品国产一区二区三区四区 | 日韩综合一区 | 天天干狠狠操 | 做暧暧视频在线观看 | 日韩青青草 | 国产人妻人伦精品1国产丝袜 | 天堂中文字幕免费一区 | 极品videosvideo喷水 | 欧美一区二区三区久久精品 | 天堂在线精品视频 | 极品国产在线 | 大色av| 欧美性潮喷xxxxx免费视频看 | 极品白嫩的小少妇 | exo妈妈mv在线播放免费 | 色婷婷麻豆 | 免费极品av一视觉盛宴 | 欧美成人免费播放 | 日韩一区二区久久 | 无码国内精品人妻少妇蜜桃视频 | 日韩欧美第一区 | 精品久久久久久久久久久久 | 欧美永久免费 | 深夜老司机福利 | 黄色免费一级 | 五月综合在线 | 污视频在线免费 | 国产男女视频在线观看 | 国产在线xxxx | 国产丝袜在线视频 | 欧美黄片一区 | 图片区 小说区 区 亚洲五月 | 亚洲国产成人综合 | 午夜精品久久99蜜桃的功能介绍 | 欧美一区二区三区 | 91视频免费入口 | 久草久操| 精品人妻人伦一区二区有限公司 | 欧美国产日本 | 日本黄大片在线观看 | 蜜臀久久99静品久久久久久 | 操一操av| 香蕉大久久 | 精品视频在线观看一区 | 久久免费大片 | 国产乱人伦精品一区二区 | 欧美激情一区二区三区在线 | 亚洲狠狠丁香婷婷综合久久久 | 波多野结衣导航 | 日韩电影一区二区三区 | 美女扒开大腿让男人桶 | 国产男男一区二区三区 | 一卡二卡三卡在线观看 | 亚洲狠狠婷婷综合久久久久图片 | 青青草国产在线视频 | 久久久久免费看 | 中文字幕91爱爱 | 日韩三级成人 | www视频在线 | 亚洲精品麻豆 | 国产一级大片在线观看 | 靠逼在线观看 | 好男人www社区 | 中文字幕视频网站 | 一区不卡在线 |