浅谈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之??碌某?? target=
Sep 12 Python
跟老齐学Python之坑爹的字符编码
Sep 28 Python
windows下python连接oracle数据库
Jun 07 Python
python+opencv实现动态物体追踪
Jan 09 Python
tensorflow实现逻辑回归模型
Sep 08 Python
pygame游戏之旅 如何制作游戏障碍
Nov 20 Python
Python3多目标赋值及共享引用注意事项
May 27 Python
Python利用pandas处理Excel数据的应用详解
Jun 18 Python
python标记语句块使用方法总结
Aug 05 Python
画pytorch模型图,以及参数计算的方法
Aug 17 Python
Python实现小黑屋游戏的完整实例
Jan 06 Python
用Python实现Newton插值法
Apr 17 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
《Re:从零开始的异世界生活》剧情体验,手游新作定名
2020/04/09 日漫
php实现模拟登陆方正教务系统抓取课表
2015/05/19 PHP
深入浅析PHP7.0新特征(五大新特征)
2015/10/29 PHP
PHP中的use关键字及文件的加载详解
2016/11/28 PHP
php获取指定数量随机字符串的方法
2017/02/06 PHP
PHP实现随机数字、字母的验证码功能
2018/08/01 PHP
php 实现简单的登录功能示例【基于thinkPHP框架】
2019/12/02 PHP
Tab页界面,用jQuery及Ajax技术实现
2009/09/21 Javascript
jQuery UI Datepicker length为空或不是对象错误的解决方法
2010/12/19 Javascript
Javascript selection的兼容性写法介绍
2013/12/20 Javascript
一个支持任意尺寸的图片上下左右滑动效果
2014/08/24 Javascript
JS中如何比较两个Json对象是否相等实例代码
2016/07/13 Javascript
JQueryEasyUI之DataGrid数据显示
2016/11/23 Javascript
微信小程序 合法域名校验出错详解及解决办法
2017/03/09 Javascript
关于Vue单页面骨架屏实践记录
2017/12/13 Javascript
微信小程序实现tab左右切换效果
2020/11/15 Javascript
微信小程序使用setData修改数组中单个对象的方法分析
2018/12/30 Javascript
深入理解令牌认证机制(token)
2019/08/22 Javascript
JavaScript实现简单贪吃蛇效果
2020/03/09 Javascript
JS实现网页时钟特效
2020/03/25 Javascript
[02:53]DOTA2亚洲邀请赛 NewBee战队巡礼
2015/02/03 DOTA
[49:42]DOTA2上海特级锦标赛主赛事日 - 3 胜者组第二轮#2Secret VS EG第一局
2016/03/04 DOTA
Python使用PIL库实现验证码图片的方法
2016/03/11 Python
Python实现基于KNN算法的笔迹识别功能详解
2018/07/09 Python
pytorch 自定义参数不更新方式
2020/01/06 Python
通过python连接Linux命令行代码实例
2020/02/18 Python
HTML5+CSS3实例 :canvas 模拟实现电子彩票刮刮乐代码
2016/12/30 HTML / CSS
去加拿大的旅行和假期:Canadian Affair
2016/10/25 全球购物
澳大利亚波西米亚风情网上商店:Czarina
2019/03/18 全球购物
Kiehl’s科颜氏西班牙官方网站:源自美国的植物护肤品牌
2020/02/22 全球购物
食堂员工工作职责
2013/12/18 职场文书
2014年端午节演讲稿范文
2014/05/23 职场文书
领导批评与自我批评范文
2014/10/16 职场文书
催款函范本大全
2015/06/24 职场文书
大学生如何逃脱“毕业季创业队即散伙”魔咒?
2019/08/19 职场文书
QT与javascript交互数据的实现
2021/05/26 Javascript