浅谈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实现批量重命名文件的代码
May 25 Python
简单介绍Python中的struct模块
Apr 28 Python
Python中的模块导入和读取键盘输入的方法
Oct 16 Python
Python中 Lambda表达式全面解析
Nov 28 Python
Python中一些不为人知的基础技巧总结
May 19 Python
Python爬取个人微信朋友信息操作示例
Aug 03 Python
python实现海螺图片的方法示例
May 12 Python
Python绘制频率分布直方图的示例
Jul 08 Python
python tornado修改log输出方式
Nov 18 Python
python使用pygame实现笑脸乒乓球弹珠球游戏
Nov 25 Python
python清空命令行方式
Jan 13 Python
python脚本使用阿里云slb对恶意攻击进行封堵的实现
Feb 04 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
基于mysql的论坛(4)
2006/10/09 PHP
详解php的socket通信
2015/08/11 PHP
PHP编程获取各个时间段具体时间的方法
2017/05/26 PHP
jQuery Validation插件remote验证方式的Bug解决
2010/07/01 Javascript
JQuery扩展插件Validate—4设置错误提示的样式
2011/09/05 Javascript
TimergliderJS 一个基于jQuery的时间轴插件
2011/12/07 Javascript
javascript实现的DES加密示例
2013/10/30 Javascript
JavaScript面向对象的实现方法小结
2015/04/14 Javascript
用js编写的简单的计算器代码程序
2015/08/04 Javascript
Node.js Streams文件读写操作详解
2016/07/04 Javascript
微信小程序 Record API详解及实例代码
2016/09/30 Javascript
Bootstrap文件上传组件之bootstrap fileinput
2016/11/25 Javascript
[js高手之路]原型式继承与寄生式继承详解
2017/08/28 Javascript
jQuery动态添加.active 实现导航效果代码思路详解
2017/08/29 jQuery
JS实现延迟隐藏功能的方法(类似QQ头像鼠标放上展示信息)
2017/12/28 Javascript
vue-cli+webpack项目 修改项目名称的方法
2018/02/28 Javascript
基于iview-admin实现动态路由的示例代码
2019/10/02 Javascript
原生javascript中this几种常见用法总结
2020/02/24 Javascript
python使用三角迭代计算圆周率PI的方法
2015/03/20 Python
Python求算数平方根和约数的方法汇总
2016/03/09 Python
简单谈谈Python中的几种常见的数据类型
2017/02/10 Python
网站渗透常用Python小脚本查询同ip网站
2017/05/08 Python
使用pandas批量处理矢量化字符串的实例讲解
2018/07/10 Python
python生成1行四列全2矩阵的方法
2018/08/04 Python
Python文件打开方式实例详解【a、a+、r+、w+区别】
2019/03/30 Python
Python requests接口测试实现代码
2020/09/08 Python
python爬虫构建代理ip池抓取数据库的示例代码
2020/09/22 Python
python飞机大战游戏实例讲解
2020/12/04 Python
英国时尚和家居用品零售商:Matalan
2021/02/28 全球购物
物流仓储计划书
2014/01/10 职场文书
关于读书的活动方案
2014/08/14 职场文书
先进集体申报材料
2014/12/25 职场文书
幼儿园托班开学寄语(2016秋季)
2015/12/03 职场文书
李清照的诗词赏析(20首)
2019/08/22 职场文书
《吸血鬼幸存者》新内容发布 追加多个全新模式
2022/04/07 其他游戏
vue封装数字翻牌器
2022/04/20 Vue.js