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 相关文章推荐
Python3实现的腾讯微博自动发帖小工具
Nov 11 Python
Python中的tuple元组详细介绍
Feb 02 Python
从CentOS安装完成到生成词云python的实例
Dec 01 Python
在Django admin中编辑ManyToManyField的实现方法
Aug 09 Python
Python爬虫使用代理IP的实现
Oct 27 Python
pytorch 自定义参数不更新方式
Jan 06 Python
pytorch之Resize()函数具体使用详解
Feb 27 Python
python实现简单的tcp 文件下载
Sep 16 Python
Python自动化xpath实现自动抢票抢货
Sep 19 Python
Django与数据库交互的实现
Jun 03 Python
Python如何导出导入所有依赖包详解
Jun 08 Python
python中validators库的使用方法详解
Sep 23 Python
python使用XPath解析数据爬取起点小说网数据
Apr 22 #Python
python 实现德洛内三角剖分的操作
python 三边测量定位的实现代码
python如何读取.mtx文件
Apr 22 #Python
Python中tkinter的用户登录管理的实现
python爬虫之利用selenium模块自动登录CSDN
Python数据清洗工具之Numpy的基本操作
You might like
php获取淘宝分类id示例
2014/01/16 PHP
Laravel 5框架学习之Eloquent 关系
2015/04/09 PHP
使用PHP反射机制来构造&quot;CREATE TABLE&quot;的sql语句
2019/03/21 PHP
JavaScript学习笔记(十七)js 优化
2010/02/04 Javascript
jQuery 方法大全方便学习参考
2010/02/25 Javascript
EXTJS FORM HIDDEN TEXTFIELD 赋值 使用value不好用的问题
2011/04/16 Javascript
Javascript动态创建表格及删除行列的方法
2015/05/15 Javascript
javascript作用域问题实例分析
2015/07/13 Javascript
uploadify多文件上传参数设置技巧
2015/11/16 Javascript
基于Bootstrap使用jQuery实现输入框组input-group的添加与删除
2016/05/03 Javascript
JavaScipt选取文档元素的方法(推荐)
2016/08/05 Javascript
vue.js实现点击后动态添加class及删除同级class的实现代码
2018/04/04 Javascript
React props和state属性的具体使用方法
2018/04/12 Javascript
JavaScript实现轮播图片完整代码
2020/03/07 Javascript
Python六大开源框架对比
2015/10/19 Python
python如何爬取个性签名
2018/06/19 Python
对python生成业务报表的实例详解
2019/02/03 Python
python整小时 整天时间戳获取算法示例
2019/02/20 Python
django中账号密码验证登陆功能的实现方法
2019/07/15 Python
python rsa实现数据加密和解密、签名加密和验签功能
2019/09/18 Python
Python tkinter和exe打包的方法
2020/02/05 Python
python GUI库图形界面开发之PyQt5动态(可拖动控件大小)布局控件QSplitter详细使用方法与实例
2020/03/06 Python
python脚本监控logstash进程并邮件告警实例
2020/04/28 Python
Python本地及虚拟解释器配置过程解析
2020/10/13 Python
利用CSS3的transform做的动态时钟效果
2011/09/21 HTML / CSS
Java方面的关于数组和继承的笔面试题
2015/09/18 面试题
自我鉴定的范文
2013/10/03 职场文书
半年思想汇报
2013/12/30 职场文书
负责人任命书范本
2014/06/04 职场文书
关于安全的标语
2014/06/10 职场文书
2014单位领导班子四风对照检查材料思想汇报
2014/09/25 职场文书
2014年个人工作总结报告
2014/11/27 职场文书
2015年乡镇扶贫工作总结
2015/04/08 职场文书
2015年化工厂工作总结
2015/05/04 职场文书
孔繁森观后感
2015/06/10 职场文书
《世界多美呀》教学反思
2016/02/22 职场文书