python实现冒泡排序和快速排序
2024-10-10 07:46:01
冒泡排序和快排的python实现:
data = [1, 3, 5, 10, 4, 7]
times = 0
"冒泡排序"
for i in range(len(data)):
for j in range(len(data) - i - 1):
if data[j] > data[j + 1]:
tmp = data[j + 1]
data[j + 1] = data[j]
data[j] = tmp
times += 1
print("冒泡排序")
print(data)
print("times:%d" % times)
"改进冒泡排序,插入标志位,提前结束排序"
data = [1, 3, 5, 10, 4, 7]
times = 0
for i in range(len(data)):
pos = 0
for j in range(len(data) - i - 1):
if data[j] > data[j + 1]:
tmp = data[j + 1]
data[j + 1] = data[j]
data[j] = tmp
pos = 1
times += 1
if pos == 0:
break
print("改进冒泡排序")
print(data)
print("times:%d" % times)
"快排,选第一个数为基准值,小数放在基准左边,大数放在基准右边"
data = [1, 3, 5, 10, 4, 7]
def exchage(x, y):
return y, x
def qsort(left , right):
if left > right:
return
p = data[left]
i = left
j = right
while i != j:
while data[j] > p and i < j:
j -= 1
data[i],data[j] = exchage(data[i],data[j])
while data[i] < p and i < j:
i += 1
data[i],data[j] = exchage(data[i],data[j])
qsort(left,i-1)
qsort(i+1,right)
qsort(0,len(data)-1)
print("quick sort")
print(data)
输出结果:
冒泡排序
[1, 3, 4, 5, 7, 10]
times:15
改进冒泡排序
[1, 3, 4, 5, 7, 10]
times:12
quick sort
[1, 3, 4, 5, 7, 10]
最新文章
- 【Python】winpython下的包安装
- dl,dt,dd,ul,li,ol区别
- 大文件读取方法(C#)
- html进阶css(1)
- MySQL ERROR 1045 (28000): Access denied for user &#39;root&#39;@&#39;localhost&#39; (using password: NO
- linux scp传文件
- android——写xml
- 测试驱动 ASP.NET MVC 和构建可测试 ASP.NET MVC 应用程序
- windows环境自动获取SVN仓库当前版本
- 用python3实现linux的sed功能
- java之内部类
- 【收藏】Web前端开发第三方插件大全
- 为什么我不愿意用ECharts
- 五十六、linux 编程——UDP 编程模型
- Java7后try语句的优化
- window 上安装 Scala
- mac下安装安卓开发环境
- NOIP 普及组 2016 海港
- 用AOP拦截自定义注解并获取注解属性与上下文参数(基于Springboot框架)
- Linux+Redis实战教程_day03_1、Redis-LinkedList【重点】
热门文章
- ssh整合开发
- 架构师之路->;架构师思维的培养
- linux中搭建solr集群出现org.apache.catalina.LifecycleException: Failed to initialize component ,解决办法
- [TLSR8266] 1、搭建tlsr8266编译框架在win服务器中
- 一次完整的http的请求过程
- IdentityServer Topics(4)- 登录
- Struts2中访问web元素的四种方式
- Gym 101673F Keeping On Track
- 【Java学习笔记之十】Java中循环语句foreach使用总结及foreach写法失效的问题
- [ZOJ3213] Beautiful Meadow