zoukankan      html  css  js  c++  java
  • python 冒泡、二分查找

    冒泡:

    import random
    
    
    def _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 _lst
    
    
    if __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 random
    
    
    def 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 False
    
    
    if __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")
    

      

  • 相关阅读:
    halcon7月license
    软设考试成绩查询结果
    Halcon自学笔记
    Window_Store
    Windows_Store之2048
    基于C#开发的2048
    MVC+EF+EasyUI实现CRUD
    ASP.NET MVC Model验证总结
    浙江省三级数据库考试
    基于C#的短信发送
  • 原文地址:https://www.cnblogs.com/chenadong/p/10414518.html
Copyright © 2011-2022 走看看