您当前的位置:首页 > IT编程 > python
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:python入门之算法学习

51自学网 2021-10-30 22:43:51
  python
这篇教程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算法内容请搜索51zixue.net以前的文章或继续浏览下面的相关文章希望大家以后多多支持51zixue.net!


python使用XPath解析数据爬取起点小说网数据
python 破解加密zip文件的密码
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。