python实现冒泡排序和快速排序
冒泡排序和快排的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实现冒泡排序和快速排序的更多相关文章
- python 实现冒泡排序与快速排序 遇到的错误与问题
今天看了兄弟连php里面的冒泡排序与快速排序,想了下应该可以用python实现. 冒泡排序函数: def mysort(x): len1 = len(x) for i in range(len1-1, ...
- 使用python实现冒泡排序和快速排序
1 def bubble(arr): 2 """冒泡排序""" 3 loop = len(arr) - 1 4 if loop > 0 ...
- Python八大算法的实现,插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序、基数排序。
Python八大算法的实现,插入排序.希尔排序.冒泡排序.快速排序.直接选择排序.堆排序.归并排序.基数排序. 1.插入排序 描述 插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得 ...
- [C#][算法] 用菜鸟的思维学习算法 -- 马桶排序、冒泡排序和快速排序
用菜鸟的思维学习算法 -- 马桶排序.冒泡排序和快速排序 [博主]反骨仔 [来源]http://www.cnblogs.com/liqingwen/p/4994261.html 目录 马桶排序(令人 ...
- PHP描述冒泡排序和快速排序算法
使用PHP描述冒泡排序和快速排序算法,对象可以是一个数组.使用PHP描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象可以是一个有序数组.写一个二维数组排序算法函数,能够具有通用 ...
- JavaScript实现冒泡排序、快速排序、插入排序
JavaScript实现冒泡排序.快速排序.插入排序 时间:2014-01-09 18:05:51 来源: 作者:胡晗 冒泡排序的基本思想:所谓冒泡就是泡泡一个一个往上冒,让体积最轻的泡泡浮在最上 ...
- 八大排序方法汇总(选择排序,插入排序-简单插入排序、shell排序,交换排序-冒泡排序、快速排序、堆排序,归并排序,计数排序)
2013-08-22 14:55:33 八大排序方法汇总(选择排序-简单选择排序.堆排序,插入排序-简单插入排序.shell排序,交换排序-冒泡排序.快速排序,归并排序,计数排序). 插入排序还可以和 ...
- js 冒泡排序与快速排序
刚好今晚看了js的冒泡排序跟快速排序,趁着还没忘记先记下来. 1. 冒泡排序:遍历数组,每个元素都与后一个元素比较,如果大于下一个元素,则两个元素位置调换.否则的话当前元素再与下下个元素比较,一直到 ...
- 【PHP面试题】通俗易懂的两个面试必问的排序算法讲解:冒泡排序和快速排序
又到了金三银四找工作的时间,相信很多开发者都在找工作或者准备着找工作了.一般应对面试,我们无可厚非的去刷下面试题.对于PHPer来说,除了要熟悉自己所做的项目,还有懂的基本的算法.下面来分享下PHP面 ...
随机推荐
- angular4.0 安装最新版本的nodejs、npm、@angular/cli的方法
在使用ng项目的ui框架时,比如ng-zorro.angular Material,需要安装最新版本的@angular/cli: 配置ng-zorro框架 ng-zorro官网:https://ng. ...
- 纯CSS二级纵向菜单
纯CSS二级纵向菜单 <body> <div class="divda"> <div class="nav"> <ul ...
- wtforms快速使用和源码分析(基于flask)
wtforms 和django的form组件大同小异,下面给出一个应用举例以便快速查询. 开始使用 from flask import Flask, render_template, request, ...
- mysql自连接求累计金额
- (GO_GTD_2)基于OpenCV和QT,建立Android图像处理程序
一.综述 如何采集图片?在windows环境下,我们可以使用dshow,在linux下,也有ffmpeg等基础类库,再不济,opencv自带的videocapture也是提供了基础的支撑.那么 ...
- FreeMarker处理json
在后台返回一个json结构时,在ftl处理方式如下 <#assign json="${text}"?eval /> ${json.test} 说明:json为接收的值, ...
- 五分钟学习React(二):我的第一个Hello World
我的第一个React应用 接着我们上一期所讲的内容,通过create-react-app脚手架创建的应用,它是基于ES6的语法生成的.我们清空src目录下的文件,并分别创建index.js和index ...
- 简单的ajax遮罩层(加载进度圈)cvi_busy_lib.js
cvi_busy_lib.js cvi_busy_lib.js 是一个基于ajax的遮罩js,遮罩区域为body区域.使用比较简单. 效果: 在下面的Js代码,标注为红色标记为需要设置的参数. 1.g ...
- time模块、装饰器、类的装饰器
python time模块 导入模块: import time #time模块是python中最基本的模块之一 输出时间戳:time.time() #可以用变量接收,要打印出来要用print(),如 ...
- Ajax方式分页加载列表实现
在前面: 最近需要用到这个功能,所以这几天一直在研究这个,目前大致功能已实现,后续需要完善,但需要的功能点已完成,记录下: 1.分页功能引入bootstrap的分页插件: <script typ ...