python 实现快速排序和插入排序
2024-10-12 04:03:28
def quick_sort(data):
if len(data)<2 or (len(data)==2 and data[0]<=data[1]): #[2,3]此情况会死循环 所以加上特例验证
return data
mid = data[len(data)//2]
left,right=[],[]
#data.remove(mid) #不更改原对象为妙
for num in data:
if num>mid:
right.append(num)
if num<=mid:
left.append(num)
return quick_sort(left)+quick_sort(right) #拼接list
def insert_sort(data):
for i in range(len(data)):
for j in range(i):
if data[i]<data[j]:
data.insert(j,data.pop(i))
break
return data
array = [4,2,2,3,1,5,6,7]
arr2 = quick_sort(array)
print(arr2,len(arr2))
print(array,len(array))
arr3 = insert_sort(array)
print(arr3,len(arr3))
print(array,len(array))
list.remove(value) 只是删除first ocurrency of value
d = [3,4,3,5,1]
d.remove(d[2])
print(d) #[4, 3, 5, 1] #删的不是第二个3
python中变量按照不可变量理解,d[0] is d[2] ==》Ture, 其实是同一对象
最新文章
- centos7 web服务器内核优化
- 在MAVEN仓库中添加ORACLE JDBC驱动
- MVC5 + EF6 完整入门教程三
- [更新中]并发和并行(Concurrency and Parallelism)
- Red Hat Enterprise Linux 6.4常用命令
- POJ2689 - Prime Distance(素数筛选)
- asp.net缓存(二)
- 静态网页VS动态网页
- UIPinchGestureRecognizer 的scale使用
- Jexus 5.8.3正式发布:Asp.Net Core在Linux上最友好服务器平台
- python之字典操作
- 同一个电脑安装两个jdk版本
- HTML页面的三种弹框方式
- Gym .101879 USP Try-outs (寒假自训第七场)
- 【liunx命令】上传下载文件的方法
- 洛谷——P2381 圆圆舞蹈
- POJ1475 Pushing Boxes 华丽丽的双重BFS
- 解决The current branch is not configured for pull No value for key branch.master.merge found in config
- asp.net 表单数据提交,常见方式与错误总结
- CSS3 高级属性