首页 > 其他分享 >快速排序

快速排序

时间:2024-07-03 21:08:27浏览次数:14  
标签:sort arr return bigest quick 排序 快速 find

#也是用到过,找出数组中最大值
def find_bigest(arr):
    if(len(arr) == 1):
        return arr[0]
    if(arr[0] > arr[-1]):
        return find_bigest(arr[:-1])
    else:
        return find_bigest(arr[1:])

_ = [1,45,467,123,8,2,63,]

print(find_bigest(_))
import  FindBigest

def quick_sort(arr,max):
    if len(arr) == 2:
        if arr[1] < arr[0]:
            arr = arr[::-1]
        return arr
    arr.remove(max)
    return quick_sort(arr,FindBigest.find_bigest(arr)) + [max]

_ = [1,43,64,12,843,21,13,56]

print(quick_sort(_,FindBigest.find_bigest(_)))

上面是自己想的,跑题了

def quick_sort(arr):
    if len(arr) < 2:
        return arr
    else:
        piovt = arr[0]
        less = [i for i in arr[1:] if i < piovt]
        great = [i for i in arr[1:] if i > piovt]
        return quick_sort(less) + [piovt] + quick_sort(great)


_ = [1,43,64,12,843,21,13,56]
print(quick_sort(_))

看了答案之后写的

标签:sort,arr,return,bigest,quick,排序,快速,find
From: https://www.cnblogs.com/bing0426/p/18282565

相关文章

  • 【算法】十大排序算法
    冒泡排序算法思想:基于比较的思想,从第一个元素开始,依次比较相邻两个元素大小,较大者放在后面,经过一轮后,最大的元素位于最后(最大元素不断冒泡到最后的位置),重复n轮。选择排序算法思想:基于比较的思想,维护一个记录最大值的变量,遍历所有元素找到最大值所在位置,将其与最后的位置交换......
  • SM4国产加密CBC算法快速预览与Framework4.5版本对接
       针对日常加密算法,大致分为对称加密,非对称加密,哈希函数(MD5),其中对称加密比较常见的,如AES、DES、3DES,对称加密算法是指加密和解密采用相同的密钥口,是可逆的,实习那会用的就是DES,网上很多现成的轮子。此外非对称加密算法,常用的如RSA算法、‌ECC算法、‌DSA等算法,非对称......
  • 快速幂
    快速幂快速幂,是一个在$\Theta(\logn)$的时间内计算$a^n$的小技巧。对于$n$,它有$\lceil\logn\rceil$个二进制位,那么我们只需要进行$\logn$次的乘法就可以计算出$a^n$。例如计算$4^{12}$,我们将$12$改写为二进制形式:$(1100)_2$,那么$4^{12}$就等于:$$4{12}=4......
  • 三种简单的PDF文件快速压缩方法
    在日常工作中,我们经常会遇到需要发送或上传PDF文件的情况。然而,PDF文件往往会占用较大的存储空间,给我们的文件管理和传输带来了一定的困扰。因此,学会pdf压缩怎么弄就显得尤为重要了。接下来,我们将介绍四种简单有效的方法,帮助你轻松解决PDF文件压缩的问题。方法一、使用在线pdf压......
  • Vue3快速上手
    好久没上传了,闲来无事把囤积已久的笔记给上传上传1.Vue3简介2020年9月18日,Vue.js发布版3.0版本,代号:OnePiece(n经历了:4800+次提交、40+个RFC、600+次PR、300+贡献者官方发版地址:Releasev3.0.0OnePiece·vuejs/core截止2023年10月,最新的公开版本为:3.3.41.1.......
  • 排序函数
    1.std::sort(不稳定排序,时间复杂度为O(nlogn)) std::vector<int>list;std::sort(list.begin(),list.end());//默认升序std::less<int>();std::sort(list.begin(),list.end(),std::greater<int>());//降序autocmp=[](intx,inty){returnx<y;};std::s......
  • laravel 数组元素按中文排序
    1、按英文排序$r=[['color'=>'b','color_zh'=>'波'],['color'=>'c','color_zh'=>'吃'],['color'=>'a','color_zh'=>'啊......
  • 153. 寻找旋转排序数组中的最小值(中等)
    153.寻找旋转排序数组中的最小值1.题目描述2.详细题解3.代码实现3.1Python3.2Java1.题目描述题目中转:153.寻找旋转排序数组中的最小值2.详细题解  如果不考虑O(......
  • 想快速提升写作效率?从ai写作到降ai率,这5款免费AI工具帮你搞定全程!
    在日常工作和生活中,我经常使用各种各样的人工智能工具,如AI写作助手、AI语音助手和AI绘图工具等。这些AI工具显著提升了我的工作效率,并极大地简化了我的日常任务。作为一名AI工具的忠实爱好者,我搜集了许多免费的AI工具,并发现它们特别适合国内用户使用。今天,我想分享一些我经常......
  • 常见排序原理及 python 实现
    时间复杂度与空间复杂度常用O(1)或O(n)表示,其中1表示一个单位(最简单的单位,可以是多个或1个,但在时间上总体是较低且连续的),时间通常指的是程序运行时间,空间则是指程序在运行时所占用的内存空间。各个阶段的复杂度可用下面的顺序比较:O(1)<O(logn)<O(n)<O(nlogn)<O(n2).......