浅谈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多线程编程(六):可重入锁RLock
Apr 05 Python
Python中用于计算对数的log()方法
May 15 Python
Python进程间通信用法实例
Jun 04 Python
一篇文章入门Python生态系统(Python新手入门指导)
Dec 11 Python
python中的随机函数random的用法示例
Jan 27 Python
pygame实现俄罗斯方块游戏(基础篇1)
Oct 29 Python
Python OpenCV视频截取并保存实现代码
Nov 30 Python
Django之choices选项和富文本编辑器的使用详解
Apr 01 Python
python实现猜单词游戏
May 22 Python
基于Python爬虫采集天气网实时信息
Jun 05 Python
Python如何设置指定窗口为前台活动窗口
Aug 12 Python
matplotlib之pyplot模块之标题(title()和suptitle())
Feb 22 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中在数据库中保存Checkbox数据(1)
2006/10/09 PHP
中国站长站 For Dede4.0 采集规则
2007/05/27 PHP
php下正则来匹配dede模板标签的代码
2010/08/21 PHP
PHP中使用foreach()遍历二维数组的简单实例
2016/06/13 PHP
TP5框架安全机制实例分析
2020/04/05 PHP
改善用户体验的五款jQuery插件分享
2011/05/22 Javascript
用js实现控件的隐藏及style.visibility的使用
2013/06/14 Javascript
jQuery CSS()方法改变现有的CSS样式
2014/08/20 Javascript
教你使用javascript简单写一个页面模板引擎
2015/05/05 Javascript
jQuery插件datepicker 日期连续选择
2015/06/12 Javascript
浅谈JavaScript for循环 闭包
2016/06/22 Javascript
JavaScript鼠标事件,点击鼠标右键,弹出div的简单实例
2016/08/03 Javascript
JavaScript String(字符串)对象的简单实例(推荐)
2016/08/31 Javascript
angular.js之路由的选择方法
2016/09/24 Javascript
JavaScript 最佳实践:帮你提升代码质量
2016/12/03 Javascript
javascript实现文字无缝滚动
2016/12/27 Javascript
js获取元素的偏移量offset简单方法(必看)
2017/07/05 Javascript
JS运算符简单用法示例
2020/01/19 Javascript
javascript 设计模式之享元模式原理与应用详解
2020/04/08 Javascript
python中的yield使用方法
2014/02/11 Python
Python标准库之sqlite3使用实例
2014/11/25 Python
tornado 多进程模式解析
2018/01/15 Python
python for循环输入一个矩阵的实例
2018/11/14 Python
初探利用Python进行图文识别(OCR)
2019/02/26 Python
python GUI库图形界面开发之PyQt5控件QTableWidget详细使用方法与属性
2020/02/25 Python
使用Python3 poplib模块删除服务器多天前的邮件实现代码
2020/04/24 Python
Python使用多进程运行含有任意个参数的函数
2020/05/02 Python
python time.strptime格式化实例详解
2021/02/03 Python
80年代复古T恤:TruffleShuffle
2018/07/02 全球购物
《地震中的父与子》教学反思
2014/04/10 职场文书
食品安全责任书
2014/04/15 职场文书
2014个人年度工作总结
2014/12/15 职场文书
司机岗位职责范本
2015/04/10 职场文书
房地产置业顾问岗位职责
2015/04/11 职场文书
Mysql数据库索引面试题(程序员基础技能)
2021/05/31 MySQL
MySQL 中如何归档数据的实现方法
2022/03/16 SQL Server