Python 冒泡排序算法探讨与指派运算替代方法的实现
2015-10-09 05:05
621 查看
冒泡排序算法的运作如下:1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。这步做完后,最后的元素会是最大的数。3. 针对所有的元素重复以上的步骤,除了最后一个。4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。
三个函数,对比一下:
本文出自 “EIT流浪汉” 博客,请务必保留此出处http://zicowarn.blog.51cto.com/3815716/1701052
三个函数,对比一下:
def list_sort_new(list_in): for j in range(len(list_in)-1, 0 ,-1): for i in range(0, j): if list_in[i]>list_in[i+1]: list_in[i],list_in[i+1] = list_in[i+1],list_in[i] return list_in def list_sort_old(list_in): for j in range(len(list_in)-1, 0 ,-1): for i in range(0, j): if list_in[i]>list_in[i+1]: list_temp = list_in[i] list_in[i] = list_in[i+1] list_in[i+1] = list_temp return list_in def list_sort_test(list_in): for j in range(len(list_in)-1, 0 ,-1): for i in range(0, j): if list_in[i]>list_in[i+1]: print "before>> " + str(list_in[i]) list_in[i] = list_in[i+1] print "after>> " + str(list_in[i]) list_in[i+1] = list_in[i] print "and> " + str(list_in[i+1]) return list_in list_test = [2, 1, 3, 44, 22, 53, 25, 26] print list_test print "*"*20 print(list_sort_test(list_test))其中函数list_sort_new()和list_sort_old()都能实现你的目的,其中list_sort_new()中使用了指派运算, 就相当于c语言的i++。 list_sort_old()替代了list_sort_new()中的指派运算,其中j的for实现了全部比较,而倒序减少了不必要的比较,list_sort_test()表明了,为什么需要一个变量来充当缓存。
本文出自 “EIT流浪汉” 博客,请务必保留此出处http://zicowarn.blog.51cto.com/3815716/1701052
相关文章推荐
- python rmq
- python练习题代码
- 埃拉托色尼筛选法python实现
- python3爬虫之入门基础和正则表达式
- python脚本: 计算节点创建cgroups绑定虚拟核心,实现计算资源隔离
- python 打后退键出现……^H^H解决
- python多版本管理pyenv安装使用笔记
- Python实例浅谈之十国际化支持
- 【Python之旅】第六篇(一):Paramiko模块使用演示
- 用sphinx写文档
- Python的哲学
- More on 取石子游戏
- Python基础(一): 基本介绍
- python3.x安装第三方库的解决办法
- python3爬虫之入门和正则表达式
- [Django入门知识浅介]Python Web框架(Django)的必要性
- numpy的安装
- python学习进阶一
- 《机器学习实战》学习笔记:利用Adaboost元算法提高分类性能
- 【Python】Learn Python the hard way, ex17 文件复制