python入门之算法学习
前言
参考学习书籍:《算法图解》[美]Aditya Bhargava,袁国忠(译)北京人民邮电出版社,2017
二分查找 binary_search
实现二分查找的python代码如下:
def binary_search(list, item): low = 0 #最低位索引位置为0 high = len(list)- 1 #最高位索引位置为总长度-1 while low <= high: mid = (low + high)//2 #检查中间的元素,书上是一条斜杠,我试过加两条斜杠才行 guess = list[mid]#python自动圆整 if guess == item: #找到了元素 return mid if guess > item: #猜的数字大了,就修改high high = mid - 1 else: #猜的数字小了,就修改low low = mid + 1 return None #没有指定的元素
测试代码:
>>> if __name__ == "__main__":#我试过加上好用 my_list=[1,3,5,7,9] print (binary_search(my_list,3))#把binary_search也加上括号 1#表示3的索引位置为1>>> if __name__ == "__main__": my_list=[1,3,5,7,9] print (binary_search(my_list,0)) None#表示0不在列表中
选择排序 selectionSort()
实现选择排序的python代码如下:
def findSmallest(arr): smallest = arr[0] smallest_index =0 for i in range(1,len(arr)): if arr[i] < smallest: smallest = arr[i] smallest_index= i return smallest_indexdef selectionSort(arr): newArr = [] for i in range(len(arr)): smallest = findSmallest(arr) newArr.append(arr.pop(smallest)) return newArr
测试代码:
#样式1,把selcetionSort()作为新的值给arr,打印arr>>> number=[5,3,6,2,10]>>> arr=selectionSort(number)>>> arr[2, 3, 5, 6, 10]#样式2,加上if __name__ == '__main__':(我也不知道啥作用)>>> if __name__ == '__main__': number=[5,3,6,2,10] print(selectionSort(number)) [2, 3, 5, 6, 10]#样式3,直接输出,最简洁>>> number=[5,3,6,2,10]>>> print(selectionSort(number))[2, 3, 5, 6, 10]
到此这篇关于python入门之算法学习的文章就介绍到这了,更多相关python算法内容请搜索 以前的文章或继续浏览下面的相关文章希望大家以后多多支持 !
最后更新于 2021-11-22 08:21:22 并被添加「」标签,已有 位童鞋阅读过。
本站使用「署名 4.0 国际」创作共享协议,可自由转载、引用,但需署名作者且注明文章出处
相关文章
- python调用百度AI接口实现人流量统计
- 详解HTML5中垂直上下居中的解决方案
- python Django url 路由匹配过程详解
- 详解OpenCV和PIL读取和显示图像的差异
- 产褥垫产妇专用60x90一次性婴儿垫产后孕妇用品隔尿垫成人护理垫