美文网首页
2022-09-20 快速排序

2022-09-20 快速排序

作者: 木马音响积木 | 来源:发表于2022-09-19 10:41 被阅读0次

快速排序

基准 我认为最好是选最右侧的那个,其实,三选一更好。但不好写


la= [1, 2, 4, 7, 11, 6,8,9,34,45,56,67,78,79,99,12,13,14,23,24]
def swap(a,b):
    la[a],la[b]= la[b],la[a]
#右侧为基准
def fast(la,a,e):
    if a<e:
        t=la[e]       
        slow=a
        for f in range(a,e):
            if la[f]<t:
                swap(slow,f)
                slow+=1
        swap(slow,e)
        fast(la,a,slow-1)
        fast(la,  slow+1,e)

fast(la,0,len(la)-1)
print(la)

#左侧为基准
def ss(la,left,r):
    if left<r:
        t=la[left]
        slow=left
        for i in range(left+1,r+1):
            if la[i]<t:
                slow+=1
                la[slow],la[i] =la[i],la[slow]

        la[slow],la[left]=la[left],la[slow]
        ss(la,left,slow-1)
        ss(la,slow+1,r)

la=[3,2,1,6,5,4,9,8,7]
ss(la,0,8)
print(la)
#双指针
def sort(a):
    left =0
    high = r= len(a) - 1
    #分区以右侧为
    def kk(a, left, high):
        if left < high:
            r = high
            p = a[r]
            zuo = left
            while left < high:
               while left < high and a[left] <= p:
                  left += 1

               while left < high and a[high] >= p:
                  high -= 1
               a[left], a[high] = a[high], a[left]

            a[left], a[r] = a[r], a[left]
            p = left
            kk(a, zuo, p - 1)
            kk(a, p + 1, r)

    kk(a, 0, high)



相关文章

  • 七大排序算法之快速排序

    七大排序算法之快速排序 @(算法笔记)[排序算法, 快速排序, C++实现] [TOC] 快速排序的介绍: 快速排...

  • 面试准备--排序

    堆排序 快速排序(simple) 快速排序(regular) 归并排序 Shell排序 插入排序 选择排序 冒泡排序

  • 排序

    插入排序 选择排序 冒泡排序 归并排序 快速排序* 三路快速排序

  • 算法笔记01-排序#2

    快速排序敢叫快速排序,那它一定得快。 快速排序 概述 快速排序也是分治排序的典型,它快,而且是原地排序。不过,要防...

  • PHP 实现快速排序

    导语 这篇了解下快速排序。 快速排序 快速排序(英语:Quicksort),又称划分交换排序(partition-...

  • 快速排序的Python实现

    目录 快速排序的介绍 快速排序的Python实现 快速排序的介绍 快速排序(quick sort)的采用了分治的策...

  • 数据结构与算法 快速排序

    起因:快速排序,又称分区交换排序,简称快排,之前没有了解过,抽空学习一下。 快速排序 1 快速排序 快速排序的定义...

  • 数组-快速排序

    采用快速方式对数组进行排序 快速排序百科:快速排序(Quicksort)是对冒泡排序算法的一种改进.快速排序是通过...

  • OC数据结构&算法

    更多整理资料尽在?一平米小站 目录 选择排序 冒泡排序 插入排序 快速排序 双路快速排序 三路快速排序 堆排序 选...

  • 要成功就做一百题-94

    题目名称 今天来几个排序,都是经典题目,包括带拆分的快速排序,堆排序,归并排序。 描述 快速排序快速排序核心就是分...

网友评论

      本文标题:2022-09-20 快速排序

      本文链接:https://www.haomeiwen.com/subject/jpgmortx.html