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在linux中输出带颜色的文字的方法
Jun 19 Python
Python中实现字符串类型与字典类型相互转换的方法
Aug 18 Python
Python3通过Luhn算法快速验证信用卡卡号的方法
May 14 Python
python计算圆周率pi的方法
Jul 11 Python
python实现多线程行情抓取工具的方法
Feb 28 Python
python中subprocess批量执行linux命令
Apr 27 Python
详解Python3.6的py文件打包生成exe
Jul 13 Python
CentOS 7 安装python3.7.1的方法及注意事项
Nov 01 Python
python使用循环打印所有三位数水仙花数的实例
Nov 13 Python
10分钟用python搭建一个超好用的CMDB系统
Jul 17 Python
对Python获取屏幕截图的4种方法详解
Aug 27 Python
Python time库基本使用方法分析
Dec 13 Python
python使用XPath解析数据爬取起点小说网数据
Apr 22 #Python
python 实现德洛内三角剖分的操作
python 三边测量定位的实现代码
python如何读取.mtx文件
Apr 22 #Python
Python中tkinter的用户登录管理的实现
python爬虫之利用selenium模块自动登录CSDN
Python数据清洗工具之Numpy的基本操作
You might like
PHP获取文件夹大小函数用法实例
2015/07/01 PHP
浅谈php中urlencode与rawurlencode的区别
2016/09/05 PHP
tp5(thinkPHP5)操作mongoDB数据库的方法
2018/01/20 PHP
jquery radio 操作代码
2011/03/16 Javascript
JS 自定义带默认值的函数
2011/07/21 Javascript
jQuery中odd选择器的定义和用法
2014/12/23 Javascript
深入理解JavaScript系列(19):求值策略(Evaluation strategy)详解
2015/03/05 Javascript
Javascript removeChild()删除节点及删除子节点的方法
2015/12/27 Javascript
React Native基础入门之调试React Native应用的一小步
2018/07/02 Javascript
详解使用VueJS开发项目中的兼容问题
2018/08/02 Javascript
解决layui中table异步数据请求不支持自定义返回数据格式的问题
2018/08/19 Javascript
移动端滑动切换组件封装 vue-swiper-router实例详解
2018/11/25 Javascript
webpack3里使用uglifyjs压缩js时打包报错的解决
2018/12/13 Javascript
react写一个select组件的实现代码
2019/04/03 Javascript
浅析vue中的provide / inject 有什么用处
2019/11/10 Javascript
实例讲解React 组件生命周期
2020/07/08 Javascript
vue页面引入three.js实现3d动画场景操作
2020/08/10 Javascript
[01:05:12]2014 DOTA2国际邀请赛中国区预选赛 TongFu VS CIS-GAME
2014/05/21 DOTA
Python的Flask框架应用程序实现使用QQ账号登录的方法
2016/06/07 Python
基于Python的接口测试框架实例
2016/11/04 Python
Python正则表达式完全指南
2017/05/25 Python
Queue 实现生产者消费者模型(实例讲解)
2017/11/13 Python
对Python的多进程锁的使用方法详解
2019/02/18 Python
Django组件content-type使用方法详解
2019/07/19 Python
Pytorch 卷积中的 Input Shape用法
2020/06/29 Python
python 深度学习中的4种激活函数
2020/09/18 Python
分享一个python的aes加密代码
2020/12/22 Python
css3实现垂直下拉动画菜单示例
2014/04/22 HTML / CSS
选购国际女性时装设计师品牌:IFCHIC(支持中文)
2018/04/12 全球购物
英国泽西岛植物:Jersey Plants Direct
2019/08/07 全球购物
电子商务专业个人的自我评价
2013/11/19 职场文书
幼儿园中秋节活动方案
2014/02/06 职场文书
环保口号大全
2014/06/12 职场文书
党的群众路线教育实践活动个人对照检查材料(四风)
2014/11/05 职场文书
2015年初中教师个人工作总结
2015/07/21 职场文书
先进个人事迹材料(2016推荐版)
2016/03/01 职场文书