python快速排序实现元素递增

概念

1、快速排序法又称分割交换法,是冒泡排序法的改进。

基本思想

2、在数据中找到一个虚拟的中间值,然后将所有计划排序的数据分成两部分。在这些数据中,小于中间值的数据放在左边,大于中间值的数据放在右边,然后以相同的方式处理左右数据,直到排序完成。

实例

JavaScript

https://www.10zhan.com
def quick(data, start, end):  # 定义快速排序法函数if start > end:  # 如果开始值大于结束值return  # 直接退出程序i, j = start, endresult = data[start]  # 取虚拟中间值while True:  # 循环while j > i and data[j] >= result:  # 从右向左找,找到的数比虚拟中间值小就停止循环j = j - 1  # 从右向左找,位置每次-1while i < j and data[i] <= result:  # 从左向右找,找到的数比虚拟中间值大就停止循环i += 1  # 从左向右找,位置每次+1if i < j:  # i和j都停止,找到对应的位置,判断i<jdata[i], data[j] = data[j], data[i]  # 交换位置i和j对应的数值elif i >= j:  # 判断i>=j# 交换虚拟中间值和j位置上的数,此时虚拟中间值变成真正中间值data[start], data[j] = data[j], data[start]break  # 完成第一次排序,此时以中间值分左右两侧quick(data, start, i - 1)  # 调用快速排序函数,再快速排序左半边数据quick(data, i + 1, end)  # 调用快速排序函数,再快速排序右半边数据data = [6, 1, 2, 7, 9, 3, 4, 5, 10, 8]  # 定义列表并初始化
print("原始数据为:")
print(data)  # 输出原始数据
print("--------------------------------")
quick(data, 0, (len(data) - 1))  # 调用快速排序,数据从位置0开始,到数据长度-1为止
print("排序之后的数据为:")
print(data)  # 输出排序后数据
print("--------------------------------")

以上就是python快速排序实现元素递增的方法,希望对大家有所帮助。

本文教程操作环境:windows7系统、Python 3.9.1,DELL G3电脑。

python快速排序实现元素递增相关推荐

  1. python第一周小测验_荐测验1: Python基本语法元素 (第1周)

    测验1: Python基本语法元素 (第1周) 选择题: 1.Guido van Rossum正式对外发布Python版本的年份是: A.2002 B.2008 C.1991 D.1998 正确答案 ...

  2. 测验1: Python基本语法元素 (第1周)

    测验1: Python基本语法元素 (第1周) 文章目录 测验1: Python基本语法元素 (第1周) 单选题 程序题 这是python123官网上联合MOOC的Python程序设计(第8期)答案 ...

  3. python程序语法元素的描述_Python入门——Python程序语法元素

    Python程序语法元素 缩进:表达程序的格式框架 严格明确, 缩进是语法的一部分,缩进不正确程序运行错误 所属关系, 缩进是表达代码间包含和层次关系的唯一手段 长度一致, 程序内缩进长度统一 注释: ...

  4. python 数值运算 m op n_测验1 Python基本语法元素 (第1周)

    测验1: Python基本语法元素 (第1周) 选择题: 1.Guido van Rossum正式对外发布Python版本的年份是: A.2002 B.2008 C.1991 D.1998 正确答案 ...

  5. 10行代码掌握python基本语法元素_Python-基础课程学习(1)

    由于在机器学习的理论基础上需要一定的编程能力,所以在这里我打算跟进学习Python,以作为进一步学习机器学习打下基础. 这里我用学习的是mooc上北京理工大学,嵩天老师的课程.希望能有收获. 下面提一 ...

  6. python快速排序 -两种方法

    python 快速排序 使用python实现快速排序 方法一 方法二 使用python实现快速排序 快速排序,⼜称划分交换排序 1.通过⼀趟排序将要排序的数据分割成独⽴的两部分, 其中⼀部分的所有数据 ...

  7. python 快速排序详解

    python 快速排序详解 快速排序函数 def partition(arr,low,high): i = ( low-1 ) #最小元素<索引>pivot = arr[high] #选取 ...

  8. Python - 快速排序

    Python - 快速排序 手写一遍快速排序,加深记忆. # 准备被排序的数组 array_to_be_sorted = [int(i) for i in input().split()]def qu ...

  9. python基础语法元素笔记_Jupyter笔记-Python语法基础(U.1)

    Python学习 一.Python基本语法元素 1.程序设计基本方法 1.计算机的概念:功能性.可编程性: 计算机发展:遵循摩尔定律(集成电路晶体管数量2倍翻); 2.编程语言的执行方式 源代码:计算 ...

最新文章

  1. 工作流引擎的硬功夫之1-表单自定义
  2. 加密解密、Openssl、自建CA
  3. PHP调用tushare,python调用tushare获取沪股通、深股通成份股数据
  4. 8086汇编-实验4-[bx]和loop的使用
  5. 如何使用 Barracuda 防火墙设置/保护 Azure 应用程序
  6. 化作春泥更护花的上一句是什么?化作春泥更护花作者是谁
  7. asp.net安全身份验证
  8. 打开多个Excel2010文档在同一个窗口中显示问题如何解决
  9. A星算法优化(一)启发函数
  10. VS2019 MFC在静态库运行时出现的LNK2005和LNK1169问题
  11. CSS外边距塌陷问题,吊打面试官
  12. linux之shell的一些基础
  13. 项目如行军——《孙子兵法》之九地篇
  14. 高清免费壁纸网站推荐
  15. jspssh健身房会员卡信息管理系统
  16. 「诗人艺术家ll著名诗人」胭脂茉莉十四行诗10首
  17. 基于卷积神经网络的皮肤癌检测系统
  18. vscode配置c语言并优化
  19. php时间戳 中文,PHP时间戳-WEB资讯专栏-DMOZ中文网站分类目录-免费收录各类优秀网站的中文网站目录....
  20. 【presto】presto查询报错整理

热门文章

  1. 上海和北京环境各有什么特色?
  2. c语言中null未声明,错误:此范围内未声明“NULL”(示例代码)
  3. 数据库存储过程的作用
  4. VC对创业公司的投资流程是怎么样的?
  5. 向量空间模型(VSM)与TF-IDF
  6. NUC980开源项目39-Rtl8188eus WIFI联网
  7. 一个月的高效工作,全靠这一招
  8. 关于(十六进制值 0x00)是无效的字符
  9. 网页动态背景——随鼠标变换的动态线条
  10. matex2怎么升级鸿蒙系统,余承东:4月份开始,华为Mate X2最先升级鸿蒙系统