首页 > 编程语言 >Python 常见排序:冒泡、选择、快速

Python 常见排序:冒泡、选择、快速

时间:2023-10-10 18:57:07浏览次数:38  
标签:__ nums Python res action3 num 冒泡 排序

简单说明:

1.冒泡排序:双层循环,交替结果
2.选择排序:while nums,假设第一个值为做小,通过for循环找到最小值以此来替换,再将nums中该值去掉继续上述步骤
3.快速排序:定义一个初值,把整个数据列表分为两部分,再递归

代码实现:

# 冒泡排序
def action1(n):
    for i in range(len(n)):
        for j in range(len(n)):
            if n[i] < n [j]:
                tmp = n[i]
                n[i] = n[j]
                n[j] = tmp
    print(n)


# 选择排序
def choice_order(n):
    sm = n[0]
    si = 0
    for i in range(len(n)):
        if n[i] < sm:
            sm = n[i]
    return sm


def action2(n):
    rs = []
    while n:
        res = choice_order(n)
        rs.append(res)
        n.remove(res)
    print(rs)

# 快速排序
def action3(n):
    if len(n) < 2:
        return n
    num = n[0]
    less = [i for i in n if i < num]
    more = [i for i in n if i > num]
    return action3(less) + [num] + action3(more)


if __name__ == '__main__':
    nums = [1, 6, 3, 2, 7]
    # 冒泡排序
    action1(nums)
    # 选择排序
    action2(nums)
    # 快速排序
    res = action3(nums)
    print(res)

  

 

标签:__,nums,Python,res,action3,num,冒泡,排序
From: https://www.cnblogs.com/lytcreate/p/17755464.html

相关文章

  • 【python】魔术方法大全(四)——类构建篇
    这期我们来聊聊和class建立有关的魔术方法。__init_subclass__魔术方法__init_subclass__是Python3.6新增的一个特殊方法,用于定义一个类(基类)被继承时所执行的逻辑。当一个类被定义为另一个类(基类)的子类时,它会自动调用__init_subclass__方法。__init_subclass__方法定义......
  • Python并发及网络编程进阶
    案例引入假如你们一家已上市的电商公司,在元旦来临前夕,领导需要你模拟用户,通过接口生成10万笔新订单。你该如何处理?方案探索串行:多个任务逐个执行的过程,上个任务执行完成前,阻塞下一个任务执行。并发:多个任务交替执行的过程,这些任务可能在同一时间段内执行,但是它们的执行时......
  • cpsc 103 python基本前提
    python基本知识基本运算符1.(**)是次方ex:2**3evaluatesto(2tothepowerof3)82.(%)是求余数ex:15%4evaluatestobecausetheremainderwhendividing15by4is33基本运算规则1.str乘以数字ex:'hello'*2evalutesto'hellohello'2.[a......
  • js事件冒泡
    事件冒泡所谓的冒泡就是事件的逐级向上传导的过程,当后代元素上的事件被触发时,其祖先元素的相同事件也会被触发。因为子元素以及父元素在设置监听事件时均设置的是在事件的冒泡阶段调用回调函数,单击子元素时,因为事件的冒泡此单击事件会一直冒泡到父元素中。 代码如下:<!DOCTYP......
  • 归并排序
    一、算法描述归并排序,是创建在归并操作上的一种有效的排序算法。算法是采用分治法的一个非常典型的应用,且各层分治递归可以同时进行。归并排序思路简单,速度仅次于快速排序,为稳定排序算法,一般用于对总体无序,但是各子项相对有序的数列。思路如下:取分界点,intmid=(l+r)/2......
  • python31days
    组合反射(通过字符串来操作属性)getattrsetattrhasattrdelattr魔术方法(内置方法,双下划线开头的方法)异常———————————————————————————————————......
  • docker搭建pypi服务,实现python包版本永久保存
    1.宿主机上安装htpasswdpipinstall-ihttps://pypi.tuna.tsinghua.edu.cn/simplehtpasswd2.使用htpasswd生成账户和密码htpasswd-schtpasswd.txttestuser3.拉取pypiserver镜像dockerpullpypiserver/pypiserver4.使用docker安装pypi容器4.1.创建数据卷docker......
  • 【PyQt6】Python窗口拖拽文件并响应的实现
    情景大概应用情景为:将一个文件拖入到窗口内,地址栏显示文件路径,文本框显示文件内容。说明实现拖拽必须在exec前设置QMineDate,否则不会开始拖拽操作。实现fromPyQt6.QtCoreimport*calssMainWindow(QMainWindow,Ui_MainWindow): def__init__(self): super().__init__......
  • Python 反射
    反射通过字符串映射或修改程序运行时的状态、属性、方法,有以下4个方法。hasattr(obj,name_str)#判断一个对象里是否有对应的name_str字符串的方法映射getattr(obj,name_str)#根据字符串去获取obj对象里的对应的方法的内存地址setattr(obj,"y",z),isequivalent(相当于)(to)......
  • 利用Python爬虫打造SEO智能关键词聚合
    在当今互联网的竞争激烈时代,网站的SEO优化至关重要。而关键词是SEO优化的核心,选择恰当的关键词能够带来更多的流量和用户。本文将为您揭秘一项SEO黑科技:如何利用Python爬虫打造智能关键词聚合工具。通过这个工具,您可以快速地扫描和聚合与您网站相关的关键词,为您的SEO优化提供更准确......