0
点赞
收藏
分享

微信扫一扫

[DnA] 二分查找和冒泡排序

深夜瞎琢磨 2022-09-23 阅读 61
编程语言


代码:

import numpy as np

settest = set(np.random.randint(0,100,20))

def BubbleSort(li:[]):
length = len(li)
for i in range(0,length):
for j in range(0,length - i - 1):
if li[j] > li[j+1]:
tmp = li[j]
li[j] = li[j+1]
li[j+1] = tmp

def BiSearch(li:[],key):
length = len(li)
high = length - 1
low = 0
mid = (high + low) // 2

#首位特殊处理
if key == li[0]:
return 0
if key == li[-1]:
return length-1

while mid < length-1 and mid > 0:
if key > li[mid]:
low = mid
elif key < li[mid]:
high = mid
else:
return mid
mid = (high + low) // 2

return -1

listtest = [5, 10, 32, 36, 39, 40, 48, 55, 58, 60, 63, 65, 71, 75, 77, 78, 83, 85, 98 , 100]
print(listtest)
num = BiSearch(listtest,100)
print(str(num))

举报

相关推荐

0 条评论