Python排序算法动态图形化演示(实现代码)
1、冒泡排序

# 冒泡排序
def bubbleSort(li):
n = len(li)
for i in range(n-1):
for j in range(n-i-1):
if li[j] > li[j+1]:
li[j],li[j+1] = li[j+1],li[j] if __name__ == '__main__':
li = [3,44,38,5,47,15,36,26,27,2,46,4,19,50,48]
bubbleSort(li)
print(li)
2、选择排序

# 选择排序
def selectSort(li):
n = len(li)
for i in range(n):
temp = i
for j in range(temp,n):
if li[temp] > li[j]:
li[temp],li[j] = li[j],li[temp] if __name__ == '__main__':
li = [3,44,38,5,47,15,36,26,27,2,46,4,19,50,48]
selectSort(li)
print(li)
3、快速排序

# 快速排序
def quickSort(li):
if li:
mark=li[0]
little=[m for m in li if m<mark]
big=[x for x in li if x>mark]
return quickSort(little)+[mark]+quickSort(big)
else:
return []
if __name__=='__main__':
li = [3,44,38,5,47,15,36,26,27,2,46,4,19,50,48]
print(quickSort(li))
4、插入排序

# 插入排序
def insertSort(li):
length = len(li)
for i in range(1,length):
x = li[i]
for j in range(i,-1,-1):
# j为当前位置,试探j-1位置
if x < li[j-1]:
li[j] = li[j-1]
else:
# 位置确定为j
break
li[j] = x if __name__ == '__main__':
li = [3,44,38,5,47,15,36,26,27,2,46,4,19,50,48]
insertSort(li)
print(li)
Python排序算法动态图形化演示(实现代码)的更多相关文章
- 带你掌握4种Python 排序算法
摘要:在编程里,排序是一个重要算法,它可以帮助我们更快.更容易地定位数据.在这篇文章中,我们将使用排序算法分类器对我们的数组进行排序,了解它们是如何工作的. 本文分享自华为云社区<Python ...
- python排序算法实现(冒泡、选择、插入)
python排序算法实现(冒泡.选择.插入) python 从小到大排序 1.冒泡排序: O(n2) s=[3,4,2,5,1,9] #count = 0 for i in range(len(s)) ...
- Python排序算法之选择排序定义与用法示例
Python排序算法之选择排序定义与用法示例 这篇文章主要介绍了Python排序算法之选择排序定义与用法,简单描述了选择排序的功能.原理,并结合实例形式分析了Python定义与使用选择排序的相关操作技 ...
- 44.python排序算法(冒泡+选择)
一,冒泡排序: 是一种简单的排序算法.它重复地遍历要排序的数列,一次比较两个,如果他们的排序错误就把他们交换过来. 冒泡排序是稳定的(所谓稳定性就是两个相同的元素不会交换位置) 冒泡排序算法的运作如下 ...
- python 排序算法总结及实例详解
python 排序算法总结及实例详解 这篇文章主要介绍了python排序算法总结及实例详解的相关资料,需要的朋友可以参考下 总结了一下常见集中排序的算法 排序算法总结及实例详解"> 归 ...
- JS十种经典排序算法,纯动画演示,学会了怼死面试官!
十种常见排序算法可以分为两大类: 非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序. 线性时间非比较类排序:不通过比较来决定 ...
- python 排序算法
冒泡排序: 一. 冒泡排序的定义 冒泡排序(英语:Bubble Sort)是一种简单的排序算法.它重复地遍历要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.遍历数列的工作是重复地进 ...
- Python排序算法
不觉已经有半年没写了,时间真是容易荒废,这半年过了个春节,去拉萨旅行.本职工作也很忙,没有开展系统的学习和总结. 今年开始静下心来从基础开始学习,主要分为三部分,算法.线性代数.概率统计. 首先学习算 ...
- Python排序算法——冒泡排序
有趣的事,Python永远不会缺席! 如需转发,请注明出处:小婷儿的python https://www.cnblogs.com/xxtalhr/p/10786904.html 一.冒泡排序(Bubb ...
随机推荐
- JS(JavaScript)插入节点的方法appendChild与insertBefore
首先 从定义来理解 这两个方法: appendChild() 方法:可向节点的子节点列表的末尾添加新的子节点.语法:appendChild(newchild) insertBefore() 方法:可在 ...
- c# table 怎么在前台循环展示 ViewBag
后台 public ActionResult DoctorEvaluation()//前台页面 { HE_Department HE_dt = new HE_Department(); DataTab ...
- netty+proto使用简要记录
1. maven环境配置protobuf 2.生成.proto文件 3.将.proto转为java文件 打开电脑的cmd,进入.proto所在文件位置,输入命令:protoc.exe --java_o ...
- C# 连接MongoDB,含用户验证
配置文件中链接地址:mongodb://test:123456@192.168.168.186:9999/temp 读取配置文件: /// <summary> /// 构造函数 /// & ...
- Centos7+安装python3+wkhtmltoPdf+pdfkit
前言 这几天要做一个将HTML转化为PDF的小功能.期间经历了颇多的挫折,刚开始是通过java做的,后来发现java库做这个事情实在是效果不理想,前端做好了样式转完之后会出现很多问题.后来我想起来py ...
- Tomcat源码学习(3)—— Digester介绍
Digester方法详解: 通读Digester之前先分析下他的结构: 1.1该类继承了方法DefaultHandler2,DefaultHandler2继承了DefaultHandler是和sax解 ...
- 新手Python第一天(接触)
Python 变量 Python的变量由字母,数字,下划线组成不包含特殊字符,不能以数字开头 可以使用的名称 例如:name,name2,my_name 不可使用的名称 例如:if...(Python ...
- 【Coursera-ML-Notes】线性回归(上)
什么是机器学习 关于机器学习,有以下两种不同的定义. 机器学习是研究如何使电脑具备学习能力,而不用显式编程告诉它该怎么做. the field of study that gives computer ...
- centos下设置自启动和配置环境变量的方法
1. 设置自启动 在CentOS系统下,主要有两种方法设置自己安装的程序开机启动.1.把启动程序的命令添加到/etc/rc.d/rc.local文件中,比如下面的是设置开机启动httpd. #!/bi ...
- 2018-2019-20172329 《Java软件结构与数据结构》第八周学习总结
2018-2019-20172329 <Java软件结构与数据结构>第八周学习总结 现在对于我而言,最珍贵的是时间,感觉自己在时间飞逝的时候真的挽留不住什么,只能怒发冲冠的让自己疯狂的学习 ...