当前位置: 首页 > news >正文

Python三种排序算法

冒泡排序:

def bubble_sort(lists):
    # 冒泡排序
    count = len(lists)
    for i in range(0, count):
        for j in range(i + 1, count):
            if lists[i] > lists[j]:
#判断后值是否比前置大,如果大就将其交换 lists[i], lists[j]
= lists[j], lists[i] return lists res=bubble_sort([1,209,31,4,555,6,765,9,5,4,7,89,6,5,34,3,57,96]) print(res)

快速排序:

def quick_sort(lists, left, right):
    # 快速排序
    if left >= right:
        return lists
    key = lists[left]
    low = left
    high = right
    while left < right:
        while left < right and lists[right] >= key:
            right -= 1
        lists[left] = lists[right]
        while left < right and lists[left] <= key:
            left += 1
        lists[right] = lists[left]
    lists[right] = key
    quick_sort(lists, low, left - 1)
    quick_sort(lists, left + 1, high)
    return lists

选择排序:

def select_sort(lists):
    # 选择排序
    count = len(lists)
    for i in range(0, count):
        min = i
        for j in range(i + 1, count):
            if lists[min] > lists[j]:
                min = j
        print("--------",lists[min], lists[i])
        lists[min], lists[i] = lists[i], lists[min]
        print(lists[min], lists[i])
    return lists

res=select_sort([1,209,31,4,555,6,765,9,5,4,7,89,6,5,34,3,57,96])
print(res)

 

转载于:https://www.cnblogs.com/lzh1118/p/7296248.html

相关文章:

  • 最纯粹的直播技术实战02-Camera的处理以及推流
  • 一、MyBatis基本用法——3-Mapper XML映射文件
  • @Autowired和@Resource装配
  • ES6--ArrayBuffer
  • HDU 6078 Wavel Sequence
  • java io
  • 1.spring、mybatis、mysql整合需要的包
  • html行内元素和块级元素及其居中问题
  • 贝叶斯来理解高斯混合模型GMM
  • 键盘输入字符、数字,并判断数是否是2的阶次方数
  • [noip2015 d1t2] 信息传递
  • 【模板】一坨数学算法
  • 单词首字母变大写-vue
  • HDU 5402 Travelling Salesman Problem(棋盘染色 构造 多校啊)
  • oracle归档日志增长过快处理方法
  • 9月CHINA-PUB-OPENDAY技术沙龙——IPHONE
  • 【刷算法】从上往下打印二叉树
  • 5、React组件事件详解
  • Angular Elements 及其运作原理
  • CSS中外联样式表代表的含义
  • Intervention/image 图片处理扩展包的安装和使用
  • iOS高仿微信项目、阴影圆角渐变色效果、卡片动画、波浪动画、路由框架等源码...
  • leetcode378. Kth Smallest Element in a Sorted Matrix
  • LeetCode541. Reverse String II -- 按步长反转字符串
  • NSTimer学习笔记
  • orm2 中文文档 3.1 模型属性
  • PAT A1050
  • seaborn 安装成功 + ImportError: DLL load failed: 找不到指定的模块 问题解决
  • 经典排序算法及其 Java 实现
  • 使用Swoole加速Laravel(正式环境中)
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 我的zsh配置, 2019最新方案
  • 以太坊客户端Geth命令参数详解
  • ​2021半年盘点,不想你错过的重磅新书
  • # include “ “ 和 # include < >两者的区别
  • #include
  • (JSP)EL——优化登录界面,获取对象,获取数据
  • (附源码)springboot太原学院贫困生申请管理系统 毕业设计 101517
  • (论文阅读40-45)图像描述1
  • (切换多语言)vantUI+vue-i18n进行国际化配置及新增没有的语言包
  • (一)C语言之入门:使用Visual Studio Community 2022运行hello world
  • (一)为什么要选择C++
  • (原創) 如何解决make kernel时『clock skew detected』的warning? (OS) (Linux)
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  • (转)创业家杂志:UCWEB天使第一步
  • (转载)CentOS查看系统信息|CentOS查看命令
  • (转载)Google Chrome调试JS
  • ***汇编语言 实验16 编写包含多个功能子程序的中断例程
  • .mkp勒索病毒解密方法|勒索病毒解决|勒索病毒恢复|数据库修复
  • .NET 8.0 发布到 IIS
  • .NET Core跨平台微服务学习资源
  • .net访问oracle数据库性能问题
  • .vimrc php,修改home目录下的.vimrc文件,vim配置php高亮显示
  • @GlobalLock注解作用与原理解析
  • @KafkaListener注解详解(一)| 常用参数详解