浅谈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 17 Python
浅谈Python单向链表的实现
Dec 24 Python
Python中基础的socket编程实战攻略
Jun 01 Python
python实现斐波那契数列的方法示例
Jan 12 Python
python使用KNN算法手写体识别
Feb 01 Python
django 按时间范围查询数据库实例代码
Feb 11 Python
完美解决安装完tensorflow后pip无法使用的问题
Jun 11 Python
python中join()方法介绍
Oct 11 Python
python调用自定义函数的实例操作
Jun 26 Python
关于pytorch多GPU训练实例与性能对比分析
Aug 19 Python
python函数中将变量名转换成字符串实例
May 11 Python
Python+Django+MySQL实现基于Web版的增删改查的示例代码
May 13 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 Undefined index和Undefined variable的解决方法
2008/03/27 PHP
php截取后台登陆密码的代码
2012/05/05 PHP
php删除数组中重复元素的方法
2015/12/22 PHP
解决php用mysql方式连接数据库出现Deprecated报错问题
2019/12/25 PHP
PHP获取真实IP及IP模拟方法解析
2020/11/24 PHP
仿163填写邮件地址自动显示下拉(无优化)
2008/11/05 Javascript
javascript下利用arguments实现string.format函数
2010/08/24 Javascript
return false,对阻止事件默认动作的一些测试代码
2010/11/17 Javascript
jQuery setTimeout()函数使用方法
2013/04/07 Javascript
IE下双击checkbox反应延迟问题的解决方法
2014/03/27 Javascript
jQuery实现的向下图文信息滚动效果
2015/05/03 Javascript
javascript框架设计之浏览器的嗅探和特征侦测
2015/06/23 Javascript
用js编写的简单的计算器代码程序
2015/08/04 Javascript
原生JavaScript实现瀑布流布局
2020/06/28 Javascript
基于javascript实现checkbox复选框实例代码
2016/01/28 Javascript
js简单获取表单中单选按钮值的方法
2016/08/23 Javascript
用jQuery实现可输入多选下拉组合框实例代码
2017/01/18 Javascript
vue环境搭建简单教程
2017/11/07 Javascript
Vue插件打包与发布的方法示例
2018/08/20 Javascript
小程序实现上下移动切换位置
2019/09/23 Javascript
vue项目中定义全局变量、函数的几种方法
2019/11/08 Javascript
微信小程序 button样式设置为图片的方法
2020/06/19 Javascript
[01:17]辉夜杯战队访谈宣传片—EHOME
2015/12/25 DOTA
python实现线程池的方法
2015/06/30 Python
关于css中margin的值和垂直外边距重叠问题
2020/10/27 HTML / CSS
Eagle Eyes Optics鹰眼光学:高性能太阳镜
2018/12/07 全球购物
Aosom西班牙:家具在线商店
2020/06/11 全球购物
六道php面试题附答案
2014/06/05 面试题
新闻专业推荐信范文
2013/11/20 职场文书
护理工作感言
2014/01/16 职场文书
探亲假请假条
2014/04/11 职场文书
教师岗位职责范本
2015/04/02 职场文书
优秀学生干部主要事迹材料
2015/11/04 职场文书
致毕业季:你如何做好自己的职业生涯规划书?
2019/07/01 职场文书
第四次工业革命,打工人与机器人的竞争
2022/04/21 数码科技
Redis 异步机制
2022/05/15 Redis