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使用redis pool的一种单例实现方式
Apr 16 Python
分享一个可以生成各种进制格式IP的小工具实例代码
Jul 28 Python
关于Django外键赋值问题详解
Aug 13 Python
[原创]教女朋友学Python(一)运行环境搭建
Nov 29 Python
Python cookbook(数据结构与算法)将名称映射到序列元素中的方法
Mar 22 Python
Python多继承顺序实例分析
May 26 Python
Python设计模式之组合模式原理与用法实例分析
Jan 11 Python
如何利用Python开发一个简单的猜数字游戏
Sep 22 Python
浅谈Python type的使用
Nov 19 Python
Python 实现顺序高斯消元法示例
Dec 09 Python
配置python的编程环境之Anaconda + VSCode的教程
Mar 29 Python
pytorch 梯度NAN异常值的解决方案
Jun 05 Python
python使用XPath解析数据爬取起点小说网数据
Apr 22 #Python
python 实现德洛内三角剖分的操作
python 三边测量定位的实现代码
python如何读取.mtx文件
Apr 22 #Python
Python中tkinter的用户登录管理的实现
python爬虫之利用selenium模块自动登录CSDN
Python数据清洗工具之Numpy的基本操作
You might like
PHP 判断常量,变量和函数是否存在
2009/04/26 PHP
一个图片地址分解程序(用于PHP小偷程序)
2014/08/23 PHP
php获取文章内容第一张图片的方法示例
2017/07/03 PHP
PHP的PDO大对象(LOBs)
2019/01/27 PHP
动态添加js事件实现代码
2009/03/12 Javascript
高性能Javascript笔记 数据的存储与访问性能优化
2012/08/02 Javascript
JS字符串处理实例代码
2013/08/05 Javascript
javascript实现在某个元素上阻止鼠标右键事件的方法和实例
2014/08/12 Javascript
node.js中的fs.appendFileSync方法使用说明
2014/12/17 Javascript
js+jquery常用知识点汇总
2015/03/03 Javascript
node.js回调函数之阻塞调用与非阻塞调用
2015/11/13 Javascript
原生JS仿QQ阅读点击展开、收起效果
2017/03/08 Javascript
基于JavaScript实现简单的音频播放功能
2018/01/07 Javascript
JS块级作用域和私有变量实例分析
2019/05/11 Javascript
ES6 Set结构的应用实例分析
2019/06/26 Javascript
Vue 权限控制的两种方法(路由验证)
2019/08/16 Javascript
分享一下Python 开发者节省时间的10个方法
2015/10/02 Python
Python实现遍历目录的方法【测试可用】
2017/03/22 Python
python3读取csv和xlsx文件的实例
2018/06/22 Python
Python爬虫之pandas基本安装与使用方法示例
2018/08/08 Python
python事件驱动event实现详解
2018/11/21 Python
Django+JS 实现点击头像即可更改头像的方法示例
2018/12/26 Python
python中通过selenium简单操作及元素定位知识点总结
2019/09/10 Python
Pycharm 2020年最新激活码(亲测有效)
2020/09/18 Python
浅谈Pytorch torch.optim优化器个性化的使用
2020/02/20 Python
tensorflow 大于某个值为1,小于为0的实例
2020/06/30 Python
用纯CSS3实现网页中常见的小箭头
2017/10/16 HTML / CSS
苹果香港官方商城:Apple香港
2016/09/14 全球购物
Lands’ End英国官方网站:高质量男女服装
2017/10/07 全球购物
澳大利亚最好的在线时尚精品店:Princess Polly
2018/01/03 全球购物
家庭睡衣和家庭用品:Little Blue House
2018/03/18 全球购物
计算机应用与科学个人的自我评价
2013/11/15 职场文书
学校四群教育实施方案
2014/06/12 职场文书
党员民主生活会整改措施
2014/09/26 职场文书
2015元旦晚会主持人开场白+结束语
2014/12/14 职场文书
2015年技术工作总结范文
2015/04/20 职场文书