python快速排序实现元素递增
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快速排序实现元素递增相关推荐
- python第一周小测验_荐测验1: Python基本语法元素 (第1周)
测验1: Python基本语法元素 (第1周) 选择题: 1.Guido van Rossum正式对外发布Python版本的年份是: A.2002 B.2008 C.1991 D.1998 正确答案 ...
- 测验1: Python基本语法元素 (第1周)
测验1: Python基本语法元素 (第1周) 文章目录 测验1: Python基本语法元素 (第1周) 单选题 程序题 这是python123官网上联合MOOC的Python程序设计(第8期)答案 ...
- python程序语法元素的描述_Python入门——Python程序语法元素
Python程序语法元素 缩进:表达程序的格式框架 严格明确, 缩进是语法的一部分,缩进不正确程序运行错误 所属关系, 缩进是表达代码间包含和层次关系的唯一手段 长度一致, 程序内缩进长度统一 注释: ...
- python 数值运算 m op n_测验1 Python基本语法元素 (第1周)
测验1: Python基本语法元素 (第1周) 选择题: 1.Guido van Rossum正式对外发布Python版本的年份是: A.2002 B.2008 C.1991 D.1998 正确答案 ...
- 10行代码掌握python基本语法元素_Python-基础课程学习(1)
由于在机器学习的理论基础上需要一定的编程能力,所以在这里我打算跟进学习Python,以作为进一步学习机器学习打下基础. 这里我用学习的是mooc上北京理工大学,嵩天老师的课程.希望能有收获. 下面提一 ...
- python快速排序 -两种方法
python 快速排序 使用python实现快速排序 方法一 方法二 使用python实现快速排序 快速排序,⼜称划分交换排序 1.通过⼀趟排序将要排序的数据分割成独⽴的两部分, 其中⼀部分的所有数据 ...
- python 快速排序详解
python 快速排序详解 快速排序函数 def partition(arr,low,high): i = ( low-1 ) #最小元素<索引>pivot = arr[high] #选取 ...
- Python - 快速排序
Python - 快速排序 手写一遍快速排序,加深记忆. # 准备被排序的数组 array_to_be_sorted = [int(i) for i in input().split()]def qu ...
- python基础语法元素笔记_Jupyter笔记-Python语法基础(U.1)
Python学习 一.Python基本语法元素 1.程序设计基本方法 1.计算机的概念:功能性.可编程性: 计算机发展:遵循摩尔定律(集成电路晶体管数量2倍翻); 2.编程语言的执行方式 源代码:计算 ...
最新文章
- 工作流引擎的硬功夫之1-表单自定义
- 加密解密、Openssl、自建CA
- PHP调用tushare,python调用tushare获取沪股通、深股通成份股数据
- 8086汇编-实验4-[bx]和loop的使用
- 如何使用 Barracuda 防火墙设置/保护 Azure 应用程序
- 化作春泥更护花的上一句是什么?化作春泥更护花作者是谁
- asp.net安全身份验证
- 打开多个Excel2010文档在同一个窗口中显示问题如何解决
- A星算法优化(一)启发函数
- VS2019 MFC在静态库运行时出现的LNK2005和LNK1169问题
- CSS外边距塌陷问题,吊打面试官
- linux之shell的一些基础
- 项目如行军——《孙子兵法》之九地篇
- 高清免费壁纸网站推荐
- jspssh健身房会员卡信息管理系统
- 「诗人艺术家ll著名诗人」胭脂茉莉十四行诗10首
- 基于卷积神经网络的皮肤癌检测系统
- vscode配置c语言并优化
- php时间戳 中文,PHP时间戳-WEB资讯专栏-DMOZ中文网站分类目录-免费收录各类优秀网站的中文网站目录....
- 【presto】presto查询报错整理