首页 > 其他分享 >LeetCode912 排序数组(手撕快排)

LeetCode912 排序数组(手撕快排)

时间:2022-08-15 10:24:31浏览次数:83  
标签:nums int random qsort LeetCode912 快排 tag 排序

LeetCode912 排序数组

class Solution:
    def sortArray(self, nums: List[int]) -> List[int]:
        
        import random
        def partition(l: int, r: int) -> int:
            
            random_p = random.randint(l, r)
            nums[l], nums[random_p] = nums[random_p], nums[l]

            tag = l + 1
            for i in range(l + 1, r + 1):
                if nums[i] < nums[l]:
                    nums[i], nums[tag], tag = nums[tag], nums[i], tag + 1
            nums[tag - 1], nums[l] = nums[l], nums[tag - 1]
            return tag - 1
        
        def qsort(l: int, r: int) -> None:
  
            p = partition(l, r)
            if p - 1 > l: qsort(l, p - 1)
            if r > p + 1: qsort(p + 1, r)
        
        qsort(0, len(nums) - 1)
        return nums

标签:nums,int,random,qsort,LeetCode912,快排,tag,排序
From: https://www.cnblogs.com/solvit/p/16587297.html

相关文章

  • LeetCode/最多能完成排序的块
    1.最多能完成排序的块I给定一个长度为n的整数数组arr,它表示在[0,n-1]范围内的整数的排列。我们将arr分割成若干块(即分区),并对每个块单独排序。将它们连接......
  • 【Java】List排序方法(包括对象、Map等内部排序实现)
    前言日常开发中经常会对List集合做排序操作,JDK为我们提供了强大的排序方法,可以针对对象、Map、基本类型等进行正/倒排序操作。参考博客:JAVA列表排序方法sort和reversed......
  • 数组根据时间戳排序
    exportfunctioncompare(arr,key,type="asc"){returnarr.sort((value1,value2)=>{constval1=value1[key];constval2=value2[key];//re......
  • Java学习 (20) Java数组篇(04)Arrays类&冒泡排序&稀疏数组
    目录Arrays类语法实例冒泡排序语法实例具体讲解视频(狂神说Java)稀疏数组语法实例具体讲解视频(狂神说Java)Arrays类教组的工具类java.util.Arrays由于数组对象本身并没有......
  • 拓扑排序
    日常项目开发中,一般流程是产品经理提出需求,相关人员进行需求评审,然后是前后端工程师开发功能,再到测试、发布上线。流程如下:              ......
  • JavaScript 对 DOM 元素排序
    <!DOCTYPEhtml><html><head><styletype="text/css">#wrapdiv{float:left;}#wrap:after{......
  • python中实现依据序列名称排序并输出
     001、(base)root@PC1:/home/test2#lsa.fastatest.py(base)root@PC1:/home/test2#cata.fasta##测试fasta文件>gene2mycAGCTGCCTAAGC......
  • 快速排序和堆排序
    python快速排序、堆排序、计数排序、桶排序、基数排序_一只什么都不懂的码农的博客常用排序算法总结和对比_玖玖拾月陆的博客-CSDN博客_各种排序算法的总结和比较#快速......
  • MySQL中IN()按照指定列指定规则排序
    现在我有这么一个需求,我需要通过IN(id1,id2,......)查询id字段,并且id字段按照IN()中的顺序排序例如:IN(5,1,2,4)===>查询出来的结果也应该为5,1,2,4#普通写法按照......
  • 字符串排序算法
    字符串排序算法:键索引计数法低位优先的字符串排序算法(Least-Significant-Digit-First,LSD)高位优先的字符串排序算法(MSD)三向字符串快速排序键索引计数法适用性:适用......