浅谈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实现端口复用实例代码
Jul 03 Python
Python随手笔记之标准类型内建函数
Dec 02 Python
举例讲解Python面相对象编程中对象的属性与类的方法
Jan 19 Python
Python中的条件判断语句与循环语句用法小结
Mar 21 Python
python网络爬虫之如何伪装逃过反爬虫程序的方法
Nov 23 Python
pandas apply 函数 实现多进程的示例讲解
Apr 20 Python
基于Django与ajax之间的json传输方法
May 29 Python
python实现textrank关键词提取
Jun 22 Python
Python解决pip install时出现的Could not fetch URL问题
Aug 01 Python
Pycharm远程连接服务器并实现代码同步上传更新功能
Feb 25 Python
解决keras模型保存h5文件提示无此目录问题
Jul 01 Python
Python爬虫+tkinter界面实现历史天气查询的思路详解
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
第三节 定义一个类 [3]
2006/10/09 PHP
PHP脚本的10个技巧(6)
2006/10/09 PHP
php实现搜索类封装示例
2016/03/31 PHP
Javascript 学习笔记 错误处理
2009/07/30 Javascript
javascript 打开页面window.location和window.open的区别
2010/03/17 Javascript
javascript之querySelector和querySelectorAll使用说明
2011/10/09 Javascript
解决用jquery load加载页面到div时,不执行页面js的问题
2014/02/22 Javascript
JQuery实现鼠标移动图片显示描述层的方法
2015/06/25 Javascript
JavaScript观察者模式(经典)
2015/12/09 Javascript
js实现网页收藏功能
2015/12/17 Javascript
学习JavaScript设计模式之责任链模式
2016/01/18 Javascript
js事件处理程序跨浏览器解决方案
2016/03/27 Javascript
动态加载js、css的简单实现代码
2016/05/26 Javascript
JQuery手速测试小游戏实现思路详解
2016/09/20 Javascript
vue.js表格分页示例
2016/10/18 Javascript
AngularJS入门教程之表单校验用法示例
2016/11/02 Javascript
Angular页面间切换及传值的4种方法
2016/11/04 Javascript
jquery html5 视频播放控制代码
2016/11/06 Javascript
js原生实现FastClick事件的实例
2016/11/20 Javascript
JavaScript注入漏洞的原理及防范(详解)
2016/12/04 Javascript
Bootstrap超大屏幕的实现代码
2017/03/22 Javascript
jQuery除指定区域外点击任何地方隐藏DIV功能
2017/11/13 jQuery
Python实现随机生成手机号及正则验证手机号的方法
2018/04/25 Python
使用 Python 实现简单的 switch/case 语句的方法
2018/09/17 Python
两个元祖T1=('a', 'b'),T2=('c', 'd')使用匿名函数将其转变成[{'a': 'c'},{'b': 'd'}]的几种方法
2019/03/05 Python
pyqt 多窗口之间的相互调用方法
2019/06/19 Python
使用python爬取微博数据打造一颗“心”
2019/06/28 Python
Python matplotlib画曲线例题解析
2020/02/07 Python
Pycharm连接gitlab实现过程图解
2020/09/01 Python
最新版 Windows10上安装Python 3.8.5的步骤详解
2020/11/28 Python
中国汽车租赁行业头部企业:一嗨租车
2019/05/16 全球购物
Java方面的关于数组和继承的笔面试题
2015/09/18 面试题
2014年村支部书记四风对照检查材料思想汇报
2014/10/02 职场文书
标准离婚协议书范文下载
2014/11/30 职场文书
计算机教师工作总结
2015/08/13 职场文书
Oracle删除归档日志及添加定时任务
2022/06/28 Oracle