import random
import time def bubble_sort(a):
n=len(a)
while n>1:
for i in range(n-1):
if a[i]>a[i+1]:
temp=a[i]
a[i]=a[i+1]
a[i+1]=temp
n+=-1
return a def insert_sort(a):
n=len(a)
for i in range(1,n):
for j in range(i):
if a[j]>a[i]:
temp=a[i]
del a[i]
a.insert(j,temp)
break
print a def select_sort(a):
n=len(a)
for i in range(n-1):
minn= a[i]
j=i
for j in range(i,n):
if a[j]<=minn:
minn=a[j]
k=j
a[i],a[k]=minn,a[i]
print a def quick_sort(a):
n=len(a)
if n<2:
return a
i=0
j=n-1
pivot=a[0]
while i<j:
while i<j and a[j]>=pivot:
j-=1
a[i],a[j]=a[j],a[i]
while i<j and a[i]<=pivot:
i+=1
a[i],a[j]=a[j],a[i]
return quick_sort(a[:i])+[pivot]+quick_sort(a[i+1:]) def merge_sort(a):
result=[]
n=len(a)
if n<2:
return a
mid=n/2
b=merge_sort(a[:mid])
c=merge_sort(a[mid:])
i=0
j=0
while i<mid and j<mid:
if b[i]>c[j]:
result.append(c[j])
j+=1
else:
result.append(b[i])
i+=1
result=result+b[i:]+c[j:]
return result if __name__=='__main__':
a=[]
for i in range(20):
a.append(random.randint(1,20))
print quick_sort(a)

快排不稳定性体现在,当列表为[5,2,4,6,1,1]时,pivot为5,会把最后一个1与5交换,这样就改变了两个1之间的相对位置

当序列有序时,快排退化为冒泡排序

最新文章

  1. 2014百度之星资格赛 1001:Energy Conversion(水题,逻辑题)
  2. BackgroundCheck – 根据图片亮度智能切换元素样式
  3. 【Python】Django 支持 restful 风格 url
  4. DG - 将physical standby置于read-only模式
  5. JAVA Web 之 struts2文件上传下载演示(一)(转)
  6. PYTHON之批量文件指定字符串替换
  7. -_-#【userAgent】极速模式与非极速模式存在差异
  8. hdu 1150 Machine Schedule hdu 1151 Air Raid 匈牙利模版
  9. iOS # Charles拦截封包
  10. Python高手之路【十】python基础之反射
  11. Javascript之布尔
  12. Linux:ssh_config快速访问服务器
  13. Luogu5245 【模板】多项式快速幂(多项式exp)
  14. PMP:4.项目整合管理
  15. shell 命令 ls -a
  16. 微服务之springCloud-config-bus(十三)
  17. 【日常训练】Help Chef Gerasim(Codeforces 99B)
  18. 【Android】3.25 示例25--调启百度地图
  19. bzoj1609 / P2896 [USACO08FEB]一起吃饭Eating Together(最长不降子序列)
  20. php 验证身份证号码

热门文章

  1. DirectX SDK (June 2010)安装错误S1023的一个解决方法
  2. struts2 利用通配符方式解决action太多的问题
  3. 安卓studio导入jra包和so包,百度地图so包加载
  4. shell第二篇
  5. 数据库备份shell脚本
  6. C之多线程(例子很不错)
  7. 安装基准测试工具sysbench
  8. Java高并发的常见应对方案
  9. 转载-Oracle ORACLE的sign函数和DECODE函数
  10. Android Studio 3.1 Beta 1发布,如何及时下载更新