博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python 冒泡、二分查找
阅读量:5322 次
发布时间:2019-06-14

本文共 1366 字,大约阅读时间需要 4 分钟。

冒泡:

import randomdef _sort(_lst):	count = 1	while count < len(_lst):		for i in range(0, len(_lst)-1):			if _lst[i] >= _lst[i+1]:				tem = _lst[i+1]				_lst[i+1] = _lst[i]				_lst[i] = tem		count += 1	return _lstif __name__ == "__main__":	__lst = []	for j in range(1, 80):		__lst.append(random.randint(1, 111))	print("origin: %s" % __lst)	print("sorted: %s" % _sort(__lst))

 

二分查找(判断元素是否存在):

def search(lst, des):	if len(lst) == 0:		return False	else:		while True:			start = 0			end = len(lst) // 2			for ix in range(start, end+1):				if lst[ix] == des:					return True			lst = lst[end:]if __name__ == "__main__":	__lst = [1, 2, 6]	print(search(__lst, 6))

 

二分查找(返回index,附带测试代码):

import randomdef search(lst, des):	length = len(lst)	start = 0	end = length//2	if length == 0:		return False	else:		while True:			for ix in range(start, end+1):				try:					if lst[ix] == des:						return ix				except IndexError:					print(ix)			if start == end:				break			start = end			end = end + (length+end)//2   # 这种赋值有问题,这段代码有个偶现的bug,可能和这里有关			if end >= length-1:				return Falseif __name__ == "__main__":	for j in range(0, 200):		__lst = []		for i in range(1, 101):			__lst.append(random.randint(1, 20))		# print(__lst)		index = search(__lst, 6)		if index:			if __lst[index] != 6:				print(search(__lst, 6))				print("False")

  

转载于:https://www.cnblogs.com/chenadong/p/10414518.html

你可能感兴趣的文章
【转】redo与undo
查看>>
安卓当中的线程和每秒刷一次
查看>>
wpf样式绑定 行为绑定 事件关联 路由事件实例
查看>>
TCL:表格(xls)中写入数据
查看>>
Oracle事务
查看>>
String类中的equals方法总结(转载)
查看>>
标识符
查看>>
一步步教你轻松学奇异值分解SVD降维算法
查看>>
内存地址对齐
查看>>
创新课程管理系统数据库设计心得
查看>>
Could not resolve view with name '***' in servlet with name 'dispatcher'
查看>>
[转载] redis 的两种持久化方式及原理
查看>>
MyBaits学习
查看>>
管道,数据共享,进程池
查看>>
[Cypress] Stub a Post Request for Successful Form Submission with Cypress
查看>>
SDUTOJ3754_黑白棋(纯模拟)
查看>>
php中的isset和empty的用法区别
查看>>
把word文档中的所有图片导出
查看>>
ubuntu 18.04取消自动锁屏以及设置键盘快捷锁屏
查看>>
Leetcode 589. N-ary Tree Preorder Traversal
查看>>