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实现简单拆分PDF文件的方法
Jul 30 Python
Python爬虫爬验证码实现功能详解
Apr 14 Python
Python实现的多线程http压力测试代码
Feb 08 Python
python编程培训 python培训靠谱吗
Jan 17 Python
python中format()函数的简单使用教程
Mar 14 Python
对numpy中轴与维度的理解
Apr 18 Python
Python使用微信接入图灵机器人过程解析
Nov 04 Python
python图形开发GUI库pyqt5的基本使用方法详解
Feb 14 Python
python通用读取vcf文件的类(复制粘贴即可用)
Feb 29 Python
Django restful framework生成API文档过程详解
Nov 12 Python
如何用python 操作zookeeper
Dec 28 Python
python中pandas.read_csv()函数的深入讲解
Mar 29 Python
python使用XPath解析数据爬取起点小说网数据
Apr 22 #Python
python 实现德洛内三角剖分的操作
python 三边测量定位的实现代码
python如何读取.mtx文件
Apr 22 #Python
Python中tkinter的用户登录管理的实现
python爬虫之利用selenium模块自动登录CSDN
Python数据清洗工具之Numpy的基本操作
You might like
虹吸式咖啡壶操作
2021/03/03 冲泡冲煮
加强版phplib的DB类
2008/03/31 PHP
Look And Say 序列php实现代码
2011/05/22 PHP
php中创建和调用webservice接口示例
2014/07/25 PHP
PHP中file_exists函数不支持中文名的解决方法
2014/07/26 PHP
“不能执行已释放的Script代码”错误的原因及解决办法
2007/09/09 Javascript
面向对象的javascript(笔记)
2009/10/06 Javascript
ExtJS 学习专题(一) 如何应用ExtJS(附实例)
2010/03/11 Javascript
jquery判断checkbox(复选框)是否被选中的代码
2010/10/20 Javascript
JQuery ztree带筛选、异步加载实例讲解
2016/02/25 Javascript
Vue数据驱动模拟实现3
2017/01/11 Javascript
linux 后台运行node服务指令方法
2018/05/23 Javascript
浏览器事件循环与vue nextTicket的实现
2019/04/16 Javascript
webpack3升级到webpack4遇到问题总结
2019/09/30 Javascript
使用JavaScript获取扫码枪扫描得到的条形码的思路代码详解
2020/06/10 Javascript
[02:51]2014DOTA2 TI小组赛总结中国军团全部进军钥匙球馆
2014/07/15 DOTA
python根据出生年份简单计算生肖的方法
2015/03/27 Python
Python CSV模块使用实例
2015/04/09 Python
windows10系统中安装python3.x+scrapy教程
2016/11/08 Python
python编程实现归并排序
2017/04/14 Python
Python模糊查询本地文件夹去除文件后缀的实例(7行代码)
2017/11/09 Python
python+opencv实现高斯平滑滤波
2020/07/21 Python
python爬虫 基于requests模块发起ajax的get请求实现解析
2019/08/20 Python
Python3实现发送邮件和发送短信验证码功能
2020/01/07 Python
python 两个一样的字符串用==结果为false问题的解决
2020/03/12 Python
将pymysql获取到的数据类型是tuple转化为pandas方式
2020/05/15 Python
Python API 操作Hadoop hdfs详解
2020/06/06 Python
Pycharm常用快捷键总结及配置方法
2020/11/14 Python
python实现定时发送邮件到指定邮箱
2020/12/23 Python
使用canvas生成含有微信头像的邀请海报没有微信头像问题
2019/10/29 HTML / CSS
党的群众路线剖析材料
2014/10/09 职场文书
白银帝国观后感
2015/06/17 职场文书
班主任工作总结范文
2015/08/13 职场文书
高中班主任心得体会
2016/01/07 职场文书
医务人员医德医风心得体会
2016/01/25 职场文书
mysql sum(if())和count(if())的用法说明
2022/01/18 MySQL