1.快速排序(nlogn,速度最快,但极端情况下,速度很慢n^2)
# 开发时间: 19:27
'''快速排序代码实现'''
import random
import sys
sys.setrecursionlimit(10000) #设置跌点深度
def partition(li,left,right): #归位函数
temp=li[left] #将第一个元素存起来
while left=temp: #从右往左找,比第一个元素小的存到左边
right-=1
li[left] = li[right]
while left
2.堆排序(nlogn,三者中速度最慢,heaq内置排序)
# 开发时间: 15:54
import random
def sift(li,low,high): #堆的向下调整函数
i=low #父指针
j=2*i+1 #左孩子指针
temp=li[low] #存起来根
while j < high:
if j+1<=high and li[j]
3.归并排序(nlogn,python内置排序采用的方法,递推关系)
# 开发时间: 17:08
import random
def merge(li,low,mid,high):
i=low
j=mid+1
tmp=[]
while i<=mid and j<=high:
if li[i]
三者之间的关系:
图片来自清华大学博士讲解Python数据结构与算法(完整版)全套100节_哔哩哔哩_bilibili
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)