Python入门之算法学习

爱数据精选
爱数据精选
爱数据精选
609
文章
0
评论
2021-04-2219:15:34 评论 728 1394字
摘要

这篇文章主要介绍了python入门之算法学习,文中介绍的非常详细,对想要入门python的小伙伴们有很好地帮助,需要的朋友可以参考。

前言

参考学习书籍:《算法图解》[美]Aditya Bhargava,袁国忠(译)北京人民邮电出版社,2017

二分查找 binary_search

实现二分查找的python代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
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 #没有指定的元素

测试代码:

1
2
3
4
5
6
7
8
9
10
11
12
>>> 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代码如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
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_index
def selectionSort(arr):
newArr = []
for i in range(len(arr)):
smallest = findSmallest(arr)
newArr.append(arr.pop(smallest))
return newArr

测试代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#样式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入门之算法学习的文章就介绍到这了。

End.

作者:321yu

本文为转载分享,如果涉及作品、版权和其他问题,请联系我们第一时间删除(微信号:lovedata0520)

更多文章前往爱数据社区网站首页浏览http://www.itongji.cn/

  • 我的微信公众号
  • 微信扫一扫
  • weinxin
  • 我的微信公众号
  • 微信扫一扫
  • weinxin
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: