python入门之算法学习


Posted in Python onApril 22, 2021

前言

参考学习书籍:《算法图解》[美]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]

到此这篇关于python入门之算法学习的文章就介绍到这了,更多相关python算法内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python判断字符串是否纯数字的方法
Nov 19 Python
python写日志封装类实例
Jun 28 Python
Python 做曲线拟合和求积分的方法
Dec 29 Python
python Pexpect 实现输密码 scp 拷贝的方法
Jan 03 Python
使用k8s部署Django项目的方法步骤
Jan 14 Python
Python设计模式之策略模式实例详解
Jan 21 Python
Python利用字典破解WIFI密码的方法
Feb 27 Python
如何基于Python + requests实现发送HTTP请求
Jan 13 Python
基于Python计算圆周率pi代码实例
Mar 25 Python
浅谈python opencv对图像颜色通道进行加减操作溢出
Jun 03 Python
python全栈开发语法总结
Nov 22 Python
Python采集股票数据并制作可视化柱状图
Apr 04 Python
python使用XPath解析数据爬取起点小说网数据
Apr 22 #Python
python 实现德洛内三角剖分的操作
python 三边测量定位的实现代码
python如何读取.mtx文件
Apr 22 #Python
Python中tkinter的用户登录管理的实现
python爬虫之利用selenium模块自动登录CSDN
Python数据清洗工具之Numpy的基本操作
You might like
laravel 实现用户登录注销并限制功能
2019/10/24 PHP
javascript浏览器窗口之间传递数据的方法
2015/01/20 Javascript
JavaScript生成随机字符串的方法
2015/03/19 Javascript
JavaScript把数组作为堆栈使用的方法
2015/03/20 Javascript
JS实现上下左右对称的九九乘法表
2016/02/22 Javascript
jQuery的ajax下载blob文件
2016/07/21 Javascript
jQuery css() 方法动态修改CSS属性
2016/09/25 Javascript
详解javascript中的变量提升和函数提升
2018/05/24 Javascript
微信小程序页面缩放式侧滑效果的实现代码
2018/11/15 Javascript
jQuery实现动态添加和删除input框实例代码
2019/03/26 jQuery
微信小程序生成海报分享朋友圈的实现方法
2019/05/06 Javascript
基于NodeJS开发钉钉回调接口实现AES-CBC加解密
2020/08/20 NodeJs
跟老齐学Python之赋值,简单也不简单
2014/09/24 Python
利用Python读取文件的四种不同方法比对
2017/05/18 Python
Python 爬虫之超链接 url中含有中文出错及解决办法
2017/08/03 Python
基于python requests库中的代理实例讲解
2018/05/07 Python
浅谈python之高阶函数和匿名函数
2019/03/21 Python
PyQt5 多窗口连接实例
2019/06/19 Python
分析运行中的 Python 进程详细解析
2019/06/22 Python
使用PyTorch实现MNIST手写体识别代码
2020/01/18 Python
Python Numpy中数据的常用保存与读取方法
2020/04/01 Python
django实现后台显示媒体文件
2020/04/07 Python
详解使用HTML5的classList属性操作CSS类
2017/10/13 HTML / CSS
英国最大的体育&时尚零售公司:JD Sports
2017/12/13 全球购物
英国领先的大码时装品牌之一:Elvi
2018/08/26 全球购物
Jacadi Paris英国官网:法国童装品牌
2019/08/09 全球购物
公司财务工作总结的自我评价
2013/11/23 职场文书
学生励志演讲稿
2014/01/06 职场文书
金融事务专业毕业生求职信
2014/02/23 职场文书
物业保安员岗位职责
2014/03/14 职场文书
学校安全责任书
2014/04/14 职场文书
2014年应急工作总结
2014/12/11 职场文书
工程技术员岗位职责
2015/04/11 职场文书
员工工作表扬信
2015/05/05 职场文书
pytorch finetuning 自己的图片进行训练操作
2021/06/05 Python
Django中celery的使用项目实例
2022/07/07 Python