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 相关文章推荐
Linux中Python 环境软件包安装步骤
Mar 31 Python
python PyTorch预训练示例
Feb 11 Python
centos6.5安装python3.7.1之后无法使用pip的解决方案
Feb 14 Python
python浪漫表白源码
Apr 05 Python
python获取地震信息 微信实时推送
Jun 18 Python
Django实现网页分页功能
Oct 31 Python
python实现图片二值化及灰度处理方式
Dec 07 Python
pytorch 实现打印模型的参数值
Dec 30 Python
Python3 获取文件属性的方式(时间、大小等)
Mar 12 Python
Python离线安装openpyxl模块的步骤
Mar 30 Python
pytorch 6 batch_train 批训练操作
May 28 Python
Python可视化神器pyecharts绘制地理图表
Jul 07 Python
python使用XPath解析数据爬取起点小说网数据
Apr 22 #Python
python 实现德洛内三角剖分的操作
python 三边测量定位的实现代码
python如何读取.mtx文件
Apr 22 #Python
Python中tkinter的用户登录管理的实现
python爬虫之利用selenium模块自动登录CSDN
Python数据清洗工具之Numpy的基本操作
You might like
解析PHP工厂模式的好处
2013/06/18 PHP
PHP和JavaScrip分别获取关联数组的键值示例代码
2013/09/16 PHP
ThinkPHP使用PHPExcel实现Excel数据导入导出完整实例
2014/07/22 PHP
php中隐形字符65279(utf-8的BOM头)问题
2014/08/16 PHP
php+resumablejs实现的分块上传 断点续传功能示例
2017/04/18 PHP
jquery 页面全选框实践代码
2010/04/02 Javascript
基于jquery的一个图片hover的插件
2010/04/24 Javascript
JS验证逗号隔开可以是中文字母数字
2016/04/22 Javascript
基于JS判断iframe是否加载成功的方法(多种浏览器)
2016/05/13 Javascript
[js高手之路]单例模式实现模态框的示例
2017/09/01 Javascript
jQuery zTree搜索-关键字查询 递归无限层功能实现代码
2018/01/25 jQuery
Vue自定义过滤器格式化数字三位加一逗号实现代码
2018/03/23 Javascript
基于Vue2x实现响应式自适应轮播组件插件VueSliderShow功能
2018/05/16 Javascript
使用pm2部署node生产环境的方法步骤
2019/03/09 Javascript
记录一次完整的react hooks实践
2019/03/11 Javascript
详解小程序开发经验:多页面数据同步
2019/05/18 Javascript
使用axios请求时,发送formData请求的示例
2019/10/29 Javascript
Vue实现兄弟组件间的联动效果
2020/01/21 Javascript
jQuery 图片查看器插件 Viewer.js用法简单示例
2020/04/04 jQuery
Vue通过Blob对象实现导出Excel功能示例代码
2020/07/31 Javascript
总结python爬虫抓站的实用技巧
2016/08/09 Python
浅谈python中requests模块导入的问题
2018/05/18 Python
Python使用百度api做人脸对比的方法
2019/08/28 Python
python实现两个一维列表合并成一个二维列表
2019/12/02 Python
python实现批量处理将图片粘贴到另一张图片上并保存
2019/12/12 Python
python数据预处理 :样本分布不均的解决(过采样和欠采样)
2020/02/29 Python
在服务器上安装python3.8.2环境的教程详解
2020/04/26 Python
Python Selenium自动化获取页面信息的方法
2020/08/31 Python
python math模块的基本使用教程
2021/01/16 Python
如何在Cookie里面保存Unicode和国际化字符
2013/05/25 面试题
自我推荐书
2013/12/04 职场文书
教师求职信范文分享
2013/12/27 职场文书
夜不归宿检讨书
2014/02/25 职场文书
学校党的群众路线教育实践活动制度建设计划
2014/11/03 职场文书
2016年学校“3.12”植树节活动总结
2016/03/16 职场文书
Python 处理表格进行成绩排序的操作代码
2021/07/26 Python