浅谈python常用程序算法


Posted in Python onMarch 22, 2019

一。冒泡排序:

1.冒泡排序是将无序的数字排列成从小到大的有序组合:

过程:对相邻的两个元素进行比较,对不符合要求的数据进行交换,最后达到数据有序的过程。

规律:

1.冒泡排序的趟数时固定的:n-1

2.冒泡排序比较的次数时固定的:n*(n-1)/2

3.冒泡排序交换的次数时不固定的:但是最大值为:n*(n-1)/2

注意:n = 数据个数,排序过程中需要临时变量存储要交换的数据

eg:

l=[688, 888, 711,999,1,4,6]
for i in range(len(l)-1):
  for j in range(len(l)-1):
    if l[j]>l[j+1]:
      tmp=l[j]
      l[j]=l[j+1]
      l[j+1]=tmp
print(l)

二。选择排序:

list=[10,3,5,2,9]

过程,循环当前列表,将当前循环到的值与余下的每个数字相比较,如果比当前值小,就与当前值交换位置。

eg:

l=[688, 888, 711,999,1,4,6]
for i in range(len(l)-1):
  for j in range(i+1,len(l)):
    if l[j]<l[i]:
      tmp=l[i]
      l[i]=l[j]
      l[j]=tmp
print(l)

优化:每次找到最小值后不立即替换,而是等待本次循环结束再替换,减少了操作的次数,效率提高了

l=[688, 888, 711,999,1,4,6]
for i in range(len(l)-1):
  Min=i
  for j in range(i+1,len(l)):
    if l[Min] > l[j]:
      Min=j
  tmp=l[Min]
  l[Min]=l[i]
  l[i]=tmp
print(l)

三。插入排序:

插入排序(Insertion Sort)的基本思想是:将列表分为2部分,左边为排序好的部分,右边为未排序的部分,循环整个列表,每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子序列中的适当位置,直到全部记录插入完成为止。

eg:

array=[9,8,7,6,5,4,3,2,1]

for i in range(1,len(array)):
  current_val=array[i]
  current_position=i
  while current_position >0 and array[current_position-1] > current_val:
    array[current_position]=array[current_position-1]
    current_position-=1
  array[current_position]=current_val
print(array)

以上所述是小编给大家介绍的python常用程序算法详解整合,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
Python基本语法经典教程
Mar 11 Python
Win10下python 2.7.13 安装配置方法图文教程
Sep 18 Python
Python常用爬虫代码总结方便查询
Feb 25 Python
python批量爬取下载抖音视频
Jun 17 Python
python实现网站用户名密码自动登录功能
Aug 09 Python
django创建简单的页面响应实例教程
Sep 06 Python
Python对接 xray 和微信实现自动告警
Sep 17 Python
python 读写文件包含多种编码格式的解决方式
Dec 20 Python
python 实现提取log文件中的关键句子,并进行统计分析
Dec 24 Python
python列表删除和多重循环退出原理详解
Mar 26 Python
使用Python制作一个数据预处理小工具(多种操作一键完成)
Feb 07 Python
Python深度学习之实现卷积神经网络
Jun 05 Python
python实现移位加密和解密
Mar 22 #Python
python实现可逆简单的加密算法
Mar 22 #Python
python实现字符串加密 生成唯一固定长度字符串
Mar 22 #Python
详解Python循环作用域与闭包
Mar 21 #Python
浅谈python之高阶函数和匿名函数
Mar 21 #Python
浅谈Python反射 &amp; 单例模式
Mar 21 #Python
详解Python中is和==的区别
Mar 21 #Python
You might like
php 图像函数大举例(非原创)
2009/06/20 PHP
PHP以json或xml格式返回请求数据的方法
2018/05/31 PHP
PHP中检查isset()和!empty()函数的必要性
2019/02/13 PHP
PHP接口类(interface)的定义、特点和应用示例
2020/05/18 PHP
nicejforms——美化表单不用愁
2007/02/20 Javascript
ie下动态加态js文件的方法
2011/09/13 Javascript
javascript常用函数归纳整理
2014/10/31 Javascript
JavaScript实现同时调用多个函数的方法
2015/11/09 Javascript
bootstrap实现弹窗和拖动效果
2016/01/03 Javascript
值得分享的bootstrap table实例
2016/09/22 Javascript
微信小程序 跳转方式总结
2017/04/20 Javascript
快速解决angularJS中用post方法时后台拿不到值的问题
2018/08/14 Javascript
详解swiper在vue中的应用(以3.0为例)
2018/09/20 Javascript
详解vue-cli 脚手架 安装
2019/04/16 Javascript
微信小程序实现手指拖动选项排序
2020/04/22 Javascript
js实现星星打分效果
2020/07/05 Javascript
Vue生命周期activated之返回上一页不重新请求数据操作
2020/07/26 Javascript
[11:57]《一刀刀一天》第十七期:TI中国军团加油!
2014/05/26 DOTA
python正则表达式去掉数字中的逗号(python正则匹配逗号)
2013/12/25 Python
在Python中处理日期和时间的基本知识点整理汇总
2015/05/22 Python
Python网络爬虫出现乱码问题的解决方法
2017/01/05 Python
python分块读取大数据,避免内存不足的方法
2018/12/10 Python
python将三维数组展开成二维数组的实现
2019/11/30 Python
python kafka 多线程消费者&amp;手动提交实例
2019/12/21 Python
python输出pdf文档的实例
2020/02/13 Python
OpenCV Python实现图像指定区域裁剪
2021/03/12 Python
利用css3如何设置没有上下边的列表间隔线
2017/07/03 HTML / CSS
英国家庭、花园、汽车和移动解决方案:Easylife Group
2018/05/23 全球购物
小学端午节活动方案
2014/03/13 职场文书
课外活动总结范文
2014/07/09 职场文书
机关干部个人对照检查材料思想汇报
2014/09/28 职场文书
2014年超市工作总结
2014/11/19 职场文书
售票员岗位职责
2015/02/15 职场文书
护士长2015年终工作总结
2015/04/24 职场文书
详解GaussDB for MySQL性能优化
2021/05/18 MySQL
nginx共享内存的机制详解
2022/03/21 Servers