浅谈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定时器(Timer)用法简单实例
Jun 04 Python
Django中更新多个对象数据与删除对象的方法
Jul 17 Python
Python实现一个简单的验证码程序
Nov 03 Python
目前最全的python的就业方向
Jun 05 Python
Python3实现转换Image图片格式
Jun 21 Python
详谈Python 窗体(tkinter)表格数据(Treeview)
Oct 11 Python
Python实现字符型图片验证码识别完整过程详解
May 10 Python
python打包成so文件过程解析
Sep 28 Python
在OpenCV里使用特征匹配和单映射变换的代码详解
Oct 23 Python
Python celery原理及运行流程解析
Jun 13 Python
scrapy头部修改的方法详解
Dec 06 Python
安装不同版本的tensorflow与models方法实现
Feb 20 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
在普通HTTP上安全地传输密码
2007/07/21 PHP
解决了Ajax、MySQL 和 Zend Framework 的乱码问题
2009/03/03 PHP
php 网上商城促销设计实例代码
2012/02/17 PHP
php读取文件内容的几种方法详解
2013/06/26 PHP
举例详解PHP脚本的测试方法
2015/08/05 PHP
Laravel学习基础之migrate的使用教程
2017/10/11 PHP
PHP getNamespaces()函数讲解
2019/02/03 PHP
PHP接入微信H5支付的方法示例
2019/10/28 PHP
JavaScript学习笔记(十)
2010/01/17 Javascript
javascript 常用功能总结
2012/03/18 Javascript
JS自调用匿名函数具体实现
2014/02/11 Javascript
js中将String转换为number以便比较
2014/07/08 Javascript
javascript折半查找详解
2015/01/26 Javascript
IE中document.createElement的iframe无法设置属性name的解决方法
2015/09/14 Javascript
javascript中arguments,callee,caller详解
2016/03/16 Javascript
React Native验证码倒计时工具类分享
2017/10/24 Javascript
在小程序/mpvue中使用flyio发起网络请求的方法
2018/09/13 Javascript
jQuery实现购物车的总价计算和总价传值功能
2018/11/28 jQuery
详解无限滚动插件vue-infinite-scroll源码解析
2019/05/12 Javascript
JavaScript中this函数使用实例解析
2020/02/21 Javascript
基于javascript实现碰撞检测
2020/03/12 Javascript
JavaScript使用prototype属性实现继承操作示例
2020/05/22 Javascript
JS实现炫酷雪花飘落效果
2020/08/19 Javascript
python中requests使用代理proxies方法介绍
2017/10/25 Python
python 读取目录下csv文件并绘制曲线v111的方法
2018/07/06 Python
Python合并多个Excel数据的方法
2018/07/16 Python
python得到单词模式的示例
2018/10/15 Python
Python之NumPy(axis=0 与axis=1)区分详解
2019/05/27 Python
德国足球商店:OUTFITTER
2019/05/06 全球购物
翻译专业应届生求职信
2013/11/23 职场文书
物流司机岗位职责
2013/12/28 职场文书
在校学生职业规划范文
2014/01/08 职场文书
2014县委书记党的群众路线教育实践活动对照检查材料思想汇报
2014/09/22 职场文书
《敬重卑微》读后感3篇
2019/11/26 职场文书
GTX1650super好不好 gtx1650super显卡属于什么级别
2022/04/08 数码科技
Mysql InnoDB 的内存逻辑架构
2022/05/06 MySQL