Python 快排
2024-08-31 01:37:59
def quick_sort(array,left,right):
if left>=right:
return
low=left
high=right
key=array[low]#设置基准数
while left<right:
while left<right and array[right]>=key:#如果列表后边的数,比基准数大或相等,则前移一位直到有比基准数小的数出现
right-=1
array[left]=array[right]#如找到,则把第j个元素赋值给第个元素i,此时表中i,j个元素相等
while left<right and array[left]<=key:#同样的方式比较前半区
left+=1
array[right]=array[left]
array[right]=key#做完第一轮比较之后,列表被分成了两个半区,并且i=j,需要将这个数设置回base
print(array)
# 递归前后半区
quick_sort(array,low,left-1)
quick_sort(array,left+1,high)
return array
print(quick_sort([2,13,6,11,1,5,16,22,7],0,8))
最新文章
- c#解析XML到DATASET及dataset转为xml文件函数
- golang 文件操作
- C#指定时间和当前时间的相差的月份、天数
- Entity Framework 实体框架的形成之旅--Code First的框架设计(5)
- Web API在OWIN下实现OAuth
- LVS+MYCAT读写分离+MYSQL同步部署手册(第三版)
- beetle 2.7海量消息广播测试
- Java 加密 MD5
- H5小内容(三)
- BIOS和CMOS的联系与区别
- 开始Java学习(Java之负基础实战)
- jquery源码 DOM加载
- Socket类 以及 ServerSocket类 讲解
- Linux下载_Linux系统各种版本ISO镜像下载(redhat,centos,oracle,ubuntu,openSUSE)
- 阿里云服务器ftp连接后21端口无法使用的问题
- bounding box的简单理解
- SDWebImage源码解析
- HDFS详解
- MATLAB:图像乘除法运算(immultiply、imdivide函数),同时比较双精度类型图像运算结果
- Spring Boot (#1 quick start)