浅谈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文件与目录操作实例详解
Feb 22 Python
Python实现快速排序算法及去重的快速排序的简单示例
Jun 26 Python
python实现应用程序在右键菜单中添加打开方式功能
Jan 09 Python
Python基础语言学习笔记总结(精华)
Nov 14 Python
Python实现识别手写数字 简易图片存储管理系统
Jan 29 Python
浅析python的优势和不足之处
Nov 20 Python
详解pandas数据合并与重塑(pd.concat篇)
Jul 09 Python
python手写均值滤波
Feb 19 Python
Django 解决由save方法引发的错误
May 21 Python
python如何进行矩阵运算
Jun 05 Python
Python调用REST API接口的几种方式汇总
Oct 19 Python
Python中Matplotlib的点、线形状、颜色以及绘制散点图
Apr 07 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实现按指定大小等比缩放生成上传图片缩略图的方法
2014/12/15 PHP
CI框架支持$_GET的两种实现方法
2016/05/18 PHP
PHP文件操作实例总结【文件上传、下载、分页】
2018/12/08 PHP
JavaScript 编程引入命名空间的方法与代码
2007/08/13 Javascript
javascript 新浪背投广告实现代码
2009/07/07 Javascript
jquery的index方法实现tab效果
2011/02/16 Javascript
基于iframe实现类似于ajax的页面无刷新
2014/05/31 Javascript
jquery实现树形菜单完整代码
2015/12/29 Javascript
JSON+Jquery省市区三级联动
2016/01/13 Javascript
BootStrap点击保存后实现模态框自动关闭的思路(模态框)
2017/09/26 Javascript
vue实现同一个页面可以有多个router-view的方法
2018/09/20 Javascript
vue拖拽组件使用方法详解
2018/12/01 Javascript
js验证身份证号码记录的方法
2019/04/26 Javascript
Jquery+AJAX实现无刷新上传并重命名文件操作示例【PHP后台接收】
2020/05/29 jQuery
详细分析React 表单与事件
2020/07/08 Javascript
[02:17]2016完美“圣”典风云人物:Sccc专访
2016/12/03 DOTA
[01:56]生活中的妖精之七夕特别档
2016/08/09 DOTA
linux下安装easy_install的方法
2013/02/10 Python
在Python中实现贪婪排名算法的教程
2015/04/17 Python
python 文件操作api(文件操作函数)
2016/08/28 Python
对PyTorch torch.stack的实例讲解
2018/07/30 Python
python实现H2O中的随机森林算法介绍及其项目实战
2019/08/29 Python
tensorflow中tf.slice和tf.gather切片函数的使用
2020/01/19 Python
python 生成任意形状的凸包图代码
2020/04/16 Python
解决reload(sys)后print失效的问题
2020/04/25 Python
python中如何进行连乘计算
2020/05/28 Python
python中plt.imshow与cv2.imshow显示颜色问题
2020/07/16 Python
Python基于opencv的简单图像轮廓形状识别(全网最简单最少代码)
2021/01/28 Python
html5 学习简单的拾色器
2010/09/03 HTML / CSS
SEPHORA丝芙兰德国官方购物网站:化妆品、护肤品和香水
2020/01/21 全球购物
优秀安全员事迹材料
2014/05/11 职场文书
旅游活动总结
2014/08/27 职场文书
大学毕业生管理学求职信
2014/09/01 职场文书
深入理解Vue的数据响应式
2021/05/15 Vue.js
Rust 连接 PostgreSQL 数据库的详细过程
2022/01/22 PostgreSQL
Mybatis-Plus 使用 @TableField 自动填充日期
2022/04/26 Java/Android