冒泡排序和快排的python实现:


  1. data = [1, 3, 5, 10, 4, 7]
  2. times = 0
  3. "冒泡排序"
  4. for i in range(len(data)):
  5. for j in range(len(data) - i - 1):
  6. if data[j] > data[j + 1]:
  7. tmp = data[j + 1]
  8. data[j + 1] = data[j]
  9. data[j] = tmp
  10. times += 1
  11. print("冒泡排序")
  12. print(data)
  13. print("times:%d" % times)
  14. "改进冒泡排序,插入标志位,提前结束排序"
  15. data = [1, 3, 5, 10, 4, 7]
  16. times = 0
  17. for i in range(len(data)):
  18. pos = 0
  19. for j in range(len(data) - i - 1):
  20. if data[j] > data[j + 1]:
  21. tmp = data[j + 1]
  22. data[j + 1] = data[j]
  23. data[j] = tmp
  24. pos = 1
  25. times += 1
  26. if pos == 0:
  27. break
  28. print("改进冒泡排序")
  29. print(data)
  30. print("times:%d" % times)
  31. "快排,选第一个数为基准值,小数放在基准左边,大数放在基准右边"
  32. data = [1, 3, 5, 10, 4, 7]
  33. def exchage(x, y):
  34. return y, x
  35. def qsort(left , right):
  36. if left > right:
  37. return
  38. p = data[left]
  39. i = left
  40. j = right
  41. while i != j:
  42. while data[j] > p and i < j:
  43. j -= 1
  44. data[i],data[j] = exchage(data[i],data[j])
  45. while data[i] < p and i < j:
  46. i += 1
  47. data[i],data[j] = exchage(data[i],data[j])
  48. qsort(left,i-1)
  49. qsort(i+1,right)
  50. qsort(0,len(data)-1)
  51. print("quick sort")
  52. print(data)

输出结果:

  1. 冒泡排序
  2. [1, 3, 4, 5, 7, 10]
  3. times:15
  4. 改进冒泡排序
  5. [1, 3, 4, 5, 7, 10]
  6. times:12
  7. quick sort
  8. [1, 3, 4, 5, 7, 10]

python实现冒泡排序和快速排序的更多相关文章

  1. python 实现冒泡排序与快速排序 遇到的错误与问题

    今天看了兄弟连php里面的冒泡排序与快速排序,想了下应该可以用python实现. 冒泡排序函数: def mysort(x): len1 = len(x) for i in range(len1-1, ...

  2. 使用python实现冒泡排序和快速排序

    1 def bubble(arr): 2 """冒泡排序""" 3 loop = len(arr) - 1 4 if loop > 0 ...

  3. Python八大算法的实现,插入排序、希尔排序、冒泡排序、快速排序、直接选择排序、堆排序、归并排序、基数排序。

    Python八大算法的实现,插入排序.希尔排序.冒泡排序.快速排序.直接选择排序.堆排序.归并排序.基数排序. 1.插入排序 描述 插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得 ...

  4. [C#][算法] 用菜鸟的思维学习算法 -- 马桶排序、冒泡排序和快速排序

    用菜鸟的思维学习算法 -- 马桶排序.冒泡排序和快速排序 [博主]反骨仔 [来源]http://www.cnblogs.com/liqingwen/p/4994261.html  目录 马桶排序(令人 ...

  5. PHP描述冒泡排序和快速排序算法

    使用PHP描述冒泡排序和快速排序算法,对象可以是一个数组.使用PHP描述顺序查找和二分查找(也叫做折半查找)算法,顺序查找必须考虑效率,对象可以是一个有序数组.写一个二维数组排序算法函数,能够具有通用 ...

  6. JavaScript实现冒泡排序、快速排序、插入排序

    JavaScript实现冒泡排序.快速排序.插入排序 时间:2014-01-09 18:05:51  来源:  作者:胡晗 冒泡排序的基本思想:所谓冒泡就是泡泡一个一个往上冒,让体积最轻的泡泡浮在最上 ...

  7. 八大排序方法汇总(选择排序,插入排序-简单插入排序、shell排序,交换排序-冒泡排序、快速排序、堆排序,归并排序,计数排序)

    2013-08-22 14:55:33 八大排序方法汇总(选择排序-简单选择排序.堆排序,插入排序-简单插入排序.shell排序,交换排序-冒泡排序.快速排序,归并排序,计数排序). 插入排序还可以和 ...

  8. js 冒泡排序与快速排序

    刚好今晚看了js的冒泡排序跟快速排序,趁着还没忘记先记下来. 1. 冒泡排序:遍历数组,每个元素都与后一个元素比较,如果大于下一个元素,则两个元素位置调换.否则的话当前元素再与下下个元素比较,一直到 ...

  9. 【PHP面试题】通俗易懂的两个面试必问的排序算法讲解:冒泡排序和快速排序

    又到了金三银四找工作的时间,相信很多开发者都在找工作或者准备着找工作了.一般应对面试,我们无可厚非的去刷下面试题.对于PHPer来说,除了要熟悉自己所做的项目,还有懂的基本的算法.下面来分享下PHP面 ...

随机推荐

  1. python2中的__init__.py文件的作用

    python2中的__init__.py文件的作用: 1.python的每个模块的包中,都必须有一个__init__.py文件,有了这个文件,我们才能导入这个目录下的module. 2.__init_ ...

  2. 进程管理工具Supervisor(一)简介与使用

    Supervisor是用Python开发的一套client/server架构的进程管理程序,能做到开机启动,以daemon进程的方式运行程序,并可以监控进程状态等等. linux进程管理方式有传统的r ...

  3. AspNet Core Web 应用程序的启动 当项目中 没有Startup.cs 类如何设置启动 配置等等

    感叹: Core 16年6月1号 在中国宣布上线 到现在已经快经历两年时间了,目前版本已经到了2.0 就目前的前景来看,个人感觉 到2020年才可能有所起色,等到Core更成熟 个人看法:在.net这 ...

  4. PyQt4 模拟记事本基本功能(保存,打开文件)

    完成功能: 1. 默认[保存]按钮enable 2. 修改文本的内容后,[enable] 3. 解决字符乱码问题:utf-8 4. 提示:如果修改了文件没有保存的时候,又尝试打开新的文件,给出相关的提 ...

  5. 阿里云服务器Tomcat无法从外部访问

    一.环境 阿里云 Ubuntu 12.04.5 LTS tomcat和java都是阿里云默认的7的版本,如下图 二.问题 部署后./startup.sh启动tomcat 之后外部访问http://ip ...

  6. smtplib 报错501

    昨天用stmplib写了一个自动发送的邮件的小程序. 之前能够正常运行,到了下午发现报错. 报错信息:smtplib.SMTPSendRefused(501,b'\xc7\xeb\xb5\xc7\xc ...

  7. 原生js选项卡

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. 初识mysql学习笔记

    使用VMVirtualBox导入Ubuntu后,可以通过sudo apt-get install mysql-server命令下载mysql. 在学习过程中,我遇到了连接不上Xshell的问题.最终在 ...

  9. jQuery实现跨域请求实例

    首先准备两个项目做测试(jsonp1,jsonp2) 一:在jsonp1中做一个用于测试的链接 def ajax(request): callbacks = request.GET.get(" ...

  10. asp.net权限认证篇外:4种认证类型比较

    1.基本认证,这是以base64加密用户口令并通过http header传输的一种认证方式,但是很容易被破解,因为base64解密没有任何难度: 如果数据被截包,会直接泄露用户口令:所以一般情况下都不 ...