python入门之算法学习
作者:321yu 时间:2021-05-16 19:38:19
前言
参考学习书籍:《算法图解》[美]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_index
def 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]
来源:https://blog.csdn.net/weixin_53592372/article/details/115863806
标签:python,算法,入门
0
投稿
猜你喜欢
Python plt.title()函数实例详解
2023-07-02 21:00:34
关于python pycharm中输出的内容不全的解决办法
2023-09-23 16:45:26
Python写代码的七条重要技巧介绍
2023-09-14 06:04:07
vue+element表格实现多层数据的嵌套方式
2024-05-28 16:10:56
Web性能优化系列 10个提升JavaScript性能的技巧
2024-05-28 15:40:37
T-SQL篇如何防止SQL注入的解决方法
2024-01-23 00:17:45
23个很棒的Python脚本集合分享(迷你项目)
2023-12-24 04:34:15
mysql启用skip-name-resolve模式时出现Warning的处理办法
2024-01-20 06:44:58
Java基于redis和mysql实现简单的秒杀(附demo)
2024-01-16 16:55:13
关于select元素的两个小问题
2008-12-25 13:41:00
Python详细对比讲解break和continue区别
2022-08-09 08:45:05
在pycharm中创建django项目的示例代码
2023-04-07 17:39:25
Python分割单词和转换命名法的实现
2023-11-24 00:06:16
Pytorch搭建YoloV4目标检测平台实现源码
2021-01-21 19:02:52
asp可设置参数的分页代码例子
2007-10-07 12:34:00
python链表的基础概念和基础用法详解
2021-02-26 07:13:50
jquery ui bootstrap 实现自定义风格
2024-05-09 09:05:24
Python实现结构体代码实例
2023-08-22 09:59:44
Python动刷新抢12306火车票的代码(附源码)
2021-04-27 08:13:24
PHP伪静态页面函数附使用方法
2023-11-22 06:25:42