3.算法排序之NB三人组(快速排序、堆排序、归并排序)

3.算法排序之NB三人组(快速排序、堆排序、归并排序),第1张

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/570410.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-04-09
下一篇 2022-04-09

发表评论

登录后才能评论

评论列表(0条)