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 正则式使用心得
May 07 Python
python 简易计算器程序,代码就几行
Aug 29 Python
python实现线程池的方法
Jun 30 Python
python创建临时文件夹的方法
Jul 06 Python
Python中Django 后台自定义表单控件
Mar 28 Python
Python实现的朴素贝叶斯分类器示例
Jan 06 Python
程序员的七夕用30行代码让Python化身表白神器
Aug 07 Python
python 多进程并行编程 ProcessPoolExecutor的实现
Oct 11 Python
Python基于class()实现面向对象原理详解
Mar 26 Python
python百行代码自制电脑端网速悬浮窗的实现
May 12 Python
Python3 ID3决策树判断申请贷款是否成功的实现代码
May 21 Python
如何用Python进行时间序列分解和预测
Mar 01 Python
python使用XPath解析数据爬取起点小说网数据
Apr 22 #Python
python 实现德洛内三角剖分的操作
python 三边测量定位的实现代码
python如何读取.mtx文件
Apr 22 #Python
Python中tkinter的用户登录管理的实现
python爬虫之利用selenium模块自动登录CSDN
Python数据清洗工具之Numpy的基本操作
You might like
php模板函数 正则实现代码
2012/10/15 PHP
PHP自定义函数获取URL中一级域名的方法
2016/08/23 PHP
PHP  实现等比压缩图片尺寸和大小实例代码
2016/10/08 PHP
PHP jQuery+Ajax结合写批量删除功能
2017/05/19 PHP
Laravel学习教程之View模块详解
2017/09/18 PHP
PHP使用zlib扩展实现GZIP压缩输出的方法详解
2018/04/09 PHP
PHP面向对象程序设计__tostring()和__invoke()用法分析
2019/06/12 PHP
thinkphp5实现微信扫码支付
2019/12/23 PHP
Jquery 快速构建可拖曳的购物车DragDrop
2009/11/30 Javascript
THREE.JS入门教程(1)THREE.JS使用前了解
2013/01/24 Javascript
使用javascript实现ListBox左右全选,单选,多选,全请
2013/11/07 Javascript
js中prototype用法详细介绍
2013/11/14 Javascript
jquery获取radio值(单选组radio)
2014/10/16 Javascript
概述一个页面从输入URL到页面加载完的过程
2016/12/16 Javascript
Nuxt使用Vuex的方法示例
2019/09/06 Javascript
阿望教你用vue写扫雷小游戏
2020/01/20 Javascript
Python创建二维数组实例(关于list的一个小坑)
2017/11/07 Python
python安装教程
2018/02/28 Python
python实现动态数组的示例代码
2019/07/15 Python
Python实现冒泡排序算法的完整实例
2020/11/04 Python
用python发送微信消息
2020/12/21 Python
H5 meta小结(前端必看篇)
2016/08/24 HTML / CSS
Craghoppers德国官网:户外和旅行服装
2020/02/14 全球购物
波兰办公用品和学校用品在线商店:Dlabiura24.pl
2020/11/18 全球购物
美国最大最全的亚洲购物网站:美国亚米网(Yamibuy)
2020/05/05 全球购物
酒店营销策划方案
2014/02/07 职场文书
教师节商场活动方案
2014/02/13 职场文书
学校领导四风问题整改措施思想汇报
2014/10/09 职场文书
党的群众路线教育实践活动心得体会范文
2014/11/05 职场文书
2014年客房服务员工作总结
2014/11/18 职场文书
2015年中学元旦晚会活动方案
2014/12/09 职场文书
离职证明格式样本
2015/06/12 职场文书
工作证明格式范文
2015/06/15 职场文书
简历上的自我评价,该怎么写呢?
2019/06/13 职场文书
python调用ffmpeg命令行工具便捷操作视频示例实现过程
2021/11/01 Python
win10蓝屏0xc0000001安全模式进不了怎么办?win10出现0xc0000001的解决方法
2022/08/05 数码科技