浅谈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之import机制详解
Jul 03 Python
简化Python的Django框架代码的一些示例
Apr 20 Python
python操作ie登陆土豆网的方法
May 09 Python
在windows下快速搭建web.py开发框架方法
Apr 22 Python
python 遍历字符串(含汉字)实例详解
Apr 04 Python
Python网络编程使用select实现socket全双工异步通信功能示例
Apr 09 Python
Flask框架钩子函数功能与用法分析
Aug 02 Python
Python 依赖库太多了该如何管理
Nov 08 Python
python encrypt 实现AES加密的实例详解
Feb 20 Python
Python实现动态给类和对象添加属性和方法操作示例
Feb 29 Python
python字典和json.dumps()的遇到的坑分析
Mar 11 Python
python爬取天气数据的实例详解
Nov 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
ip签名探针
2006/10/09 PHP
php中并发读写文件冲突的解决方案
2013/10/25 PHP
浅析PHP编程中10个最常见的错误
2014/08/08 PHP
php使用类继承解决代码重复的问题
2015/02/11 PHP
php观察者模式应用场景实例详解
2017/02/03 PHP
浅谈ThinkPHP5.0版本和ThinkPHP3.2版本的区别
2017/06/17 PHP
Laravel中七个非常有用但很少人知道的Carbon方法
2017/09/21 PHP
PHP保留两位小数的几种方法
2019/07/24 PHP
Jquery颜色选择器ColorPicker实现代码
2012/11/14 Javascript
JavaScript实现多维数组的方法
2013/11/20 Javascript
一个简单的实现下拉框多选的插件可移植性比较好
2014/05/05 Javascript
js中直接声明一个对象的方法
2014/08/10 Javascript
jQuery中$.click()无效问题分析
2015/01/29 Javascript
AngularJS表单编辑提交功能实例
2015/02/13 Javascript
jQuery实现感应鼠标动画效果自动伸长的输入框实例
2015/02/24 Javascript
JavaScript实现经典排序算法之选择排序
2016/12/28 Javascript
jQuery+PHP+Mysql实现抽奖程序
2020/04/12 jQuery
JS实现多张图片预览同步上传功能
2017/06/23 Javascript
zTree 树插件实现全国五级地区点击后加载的示例
2018/02/05 Javascript
使用electron制作满屏心特效的示例代码
2018/11/27 Javascript
vue slot与传参实例代码讲解
2019/04/28 Javascript
NumPy.npy与pandas DataFrame的实例讲解
2018/07/09 Python
python hbase读取数据发送kafka的方法
2018/12/27 Python
Python实现爬取亚马逊数据并打印出Excel文件操作示例
2019/05/16 Python
Python获取基金网站网页内容、使用BeautifulSoup库分析html操作示例
2019/06/04 Python
Ubuntu下Python+Flask分分钟搭建自己的服务器教程
2019/11/19 Python
python自定义函数def的应用详解
2020/06/03 Python
python中字符串的编码与解码详析
2020/12/03 Python
德国帽子专家:Hutshopping
2019/11/03 全球购物
毕业生怎样写好自荐信
2013/11/11 职场文书
《花的勇气》教后反思
2014/02/12 职场文书
协商一致解除劳动合同协议书
2014/09/14 职场文书
寒山寺导游词
2015/02/03 职场文书
冲出亚马逊观后感
2015/06/03 职场文书
如何书写公司员工保密协议?
2019/06/27 职场文书
JS新手入门数组处理的实用方法汇总
2021/04/07 Javascript