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的urllib库提交WEB表单
Feb 24 Python
Python操作sqlite3快速、安全插入数据(防注入)的实例
Apr 26 Python
python实现2048小游戏
Mar 30 Python
python单例模式实例分析
Apr 08 Python
flask + pymysql操作Mysql数据库的实例
Nov 13 Python
python Pandas 读取txt表格的实例
Apr 29 Python
基于Python中isfile函数和isdir函数使用详解
Nov 29 Python
python实现指定ip端口扫描方式
Dec 17 Python
Python基础教程(一)——Windows搭建开发Python开发环境
Jul 20 Python
python热力图实现简单方法
Jan 29 Python
Python机器学习之逻辑回归
May 11 Python
Django中celery的使用项目实例
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获取mysql数据库中的所有表名的代码
2011/04/23 PHP
php结合js实现点击超链接执行删除确认操作
2014/10/31 PHP
基于JQuery+PHP编写砸金蛋中奖程序
2015/09/08 PHP
基于php数组中的索引数组和关联数组详解
2018/03/12 PHP
Javascript 获取LI里的内容
2008/12/17 Javascript
jQuery 学习第六课 实现一个Ajax的TreeView
2010/05/17 Javascript
键盘上一张下一张兼容IE/google/firefox等浏览器
2014/01/28 Javascript
jquery ajax应用中iframe自适应高度问题解决方法
2014/04/12 Javascript
JavaScript返回上一页的三种方法及区别介绍
2015/07/04 Javascript
详解JavaScript正则表达式之分组匹配及反向引用
2016/03/09 Javascript
玩转JavaScript OOP - 类的实现详解
2016/06/08 Javascript
AngularJS基础 ng-value 指令简单示例
2016/08/03 Javascript
javascript操作cookie
2017/01/17 Javascript
nodejs 日志模块winston的使用方法
2018/05/02 NodeJs
微信小程序实现Session功能及无法获取session问题的解决方法
2019/05/07 Javascript
微信小程序组件传值图示过程详解
2019/07/31 Javascript
浅谈Vue.set实际上是什么
2019/10/17 Javascript
vant时间控件使用方法详解
2020/12/24 Javascript
python实现上传下载文件功能
2020/11/19 Python
pandas 两列时间相减换算为秒的方法
2018/04/20 Python
pandas.loc 选取指定列进行操作的实例
2018/05/18 Python
Django Sitemap 站点地图的实现方法
2019/04/29 Python
Python-jenkins 获取job构建信息方式
2020/05/12 Python
国际领先的学术出版商:Springer
2017/01/11 全球购物
英国珠宝钟表和家居礼品精品店:David Shuttle
2018/02/24 全球购物
波兰快递服务:Globkurier.pl
2019/11/08 全球购物
儿科主治医生个人求职信
2013/09/23 职场文书
数控技术专科生自我评价
2014/01/08 职场文书
元旦红领巾广播稿
2014/02/19 职场文书
财务会计专业自荐书
2014/06/30 职场文书
土建施工员岗位职责
2014/07/16 职场文书
教师业务学习材料
2014/12/16 职场文书
Oracle 区块链表创建过程详解
2021/05/15 Oracle
《游戏王:大师决斗》新活动上线 若无符合卡组可免费租用
2022/04/13 其他游戏
pandas时间序列之pd.to_datetime()的实现
2022/06/16 Python
Win11怎么解除儿童账号限制?Win11解除微软儿童账号限制方法
2022/07/07 数码科技