关于利用python进行快速排序

鄙人新人一个,目前正在学习中,不喜勿喷
当然也欢迎志同道合之人一起学习,一起进步

我们或多或少接触过排序问题,但是当数据过于庞大时,普通的排序方法(冒泡,选择,插入)在时间和占用内存的角度来说是处于一种劣势地位【极特殊情况除外】

步骤:

1.从数列中挑出一个元素,称为 "基准"(pivot),
2.重新排序数列,所有元素比基准值小的摆放在基准前面,所有元素比基准值大的摆在基准的后面(相同的数可以到任一边)。在这个分区退出之后,该基准就处于数列的中间位置。这个称为分区(partition)操作。
3.递归地(recursive)把小于基准值元素的子数列和大于基准值元素的子数列排序。

代码:

# 对排序进行封装部分

def sub_sort(list_, low, high):x = list_[low]# 将基准赋值给变量x   以便于后续操作while low < high:while list_[high] >= x and low < high:high -= 1list_[low] = list_[high]  # 将小的数往前放while list_[low] < x and low < high:low += 1list_[high] = list_[low]  # 将大的数往后放list_[low] = x # 将基准插入return lowdef quick(list_, low, high):'''快排函数:对目标进行快速排序:param list_: 排序目标:param low:   目标的索引最低值【基本为0】:param high: 目标索引的最高值【len(list_)-1】:return:'''if low < high:  # 递推截止条件key = sub_sort(list_, low, high)# 调用我们定义的排序函数quick(list_, low, key - 1)# 将基准左边的数据进行排序quick(list_, key + 1, high)# 将基准右边的数据进行排序# —————————测试代码—————————————————
if __name__ == '__main__':list01 = [1, 4, 7, 0, 32, 5, 75, ]quick(list01, 0, len(list01) - 1)print(list01)

建议

如果看不懂代码,可以将代码复制到自己的编译器中,进行调试操作(右键单击Debug,快捷键shift+alt+f9)按f7键!欢迎点赞评论加收藏!!!

生活没有捷径,停止为懒惰找借口,你未来的样子,藏在你现在的努力中!!!加油同行者

python快速排序相关推荐

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

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

  2. Python 快速排序算法【简单易懂,代码直接运行】

    Python 快速排序算法[简单易懂,代码直接运行] 给定你一个长度为 n 的整数数列. 请你使用快速排序对这个数列按照从小到大进行排序. 并将排好序的数列按顺序输出. 输入格式 输入共两行,第一行包 ...

  3. python 快速排序详解

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

  4. python快速排序实现元素递增

    python快速排序实现元素递增 概念 1.快速排序法又称分割交换法,是冒泡排序法的改进. 基本思想 2.在数据中找到一个虚拟的中间值,然后将所有计划排序的数据分成两部分.在这些数据中,小于中间值的数 ...

  5. Python - 快速排序

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

  6. python 快速排序_小白入门知识详解:Python实现快速排序的方法(含实例代码)...

    前言: 今天为大家带来的内容是:小白入门知识详解:Python实现快速排序的方法(含实例代码)希望通过本文的内容能够对各位有所帮助,喜欢的话记得点赞转发收藏不迷路哦!!! 提示: 这篇文章主要介绍了P ...

  7. python快速排序解析_快速排序python实现总结

    算法 数据结构 快速排序python实现总结 背景:数据结构与算法是IT相关的工程师一直以来的基础考察重点,很多经典书籍都是用c++或者java来实现,出于对python编码效率的喜爱,于是取sear ...

  8. python快速排序算法循环_算法:快速排序的Python实现

    一.概述 快速排序(quick sort)是一种分治排序算法.该算法首先 选取 一个划分元素(partition element,有时又称为pivot):接着重排列表将其 划分 为三个部分:left( ...

  9. python快速排序代码_Python实现快速排序算法

    原标题:Python实现快速排序算法 Python实现快速排序算法 快速排序算法是一种基于交换的高效的排序算法,由C.R.A.Hoare于1962年提出,是一种划分交换排序.它采用了一种分治的策略,通 ...

  10. python 快速排序 详解_数据结构与算法:快速排序(原理讲解+python实现)

    快速排序 快速排序是一种基于分治法(Divide and Conquer)的排序算法 它之所以称为快速排序是因为它的平均时间复杂度为O(nlogn),最坏情况下是O(n2) 但是这样的情况不常见 一般 ...

最新文章

  1. string 类型详解
  2. 关于How to do/What to do
  3. Android 数据显示控件(ListView实战演练)
  4. Tree HDU - 6547 (树链剖分,线段树)
  5. 堆元素插入 二叉堆一般用数组来表示。typedef struct _otherInfo{ int i; int j;}OtherInfo;-icoding-C-数据结构
  6. 在Oracle中使用JDBC插入功能
  7. 解决vmware报错:Mac OS X is not supported with binary translation.
  8. Spring中Bean作用域有哪些
  9. python卷积神经网络训练,python卷积神经网络图像
  10. 2018年10月7日虚拟机出现无法连接MKS错误提示和docx, rtf类型文件简介
  11. 耦合度如何降低耦合度
  12. hackthon java_Hackathon 参赛指南——如何愉快地参加一场 Hackathon
  13. java小练习:乘法表的实现(不止是9)
  14. js html监听ctrl v,js监听组合按键
  15. Java SE基础知识详解第[12]期—集合(Set、Collections、Map、集合嵌套)
  16. 【新知实验室TRTC】
  17. 学校计算机教室防火墙,学校网络及电脑教室建设方案
  18. 如何选择一个技术解决方案
  19. mysql设置初始密码(linux)
  20. 计网复习笔记【附思维导图】——【2】应用层

热门文章

  1. HBuilderX无法启动微信小程序?请看步骤
  2. 即构4周年:我们登上了音视频更高的山峰
  3. fpga map测试_FPGA学习之RoadMap
  4. php 扇形统计图,PHP实现绘制3D扇形统计图及图片缩放实例,_PHP教程
  5. 使用CSS3阴影制作立体感效果
  6. 学习数据分析:缺失值处理的正确姿势!
  7. 【干货】会员积分兑换商城平台营销经验分享
  8. gddr6速率_美光宣布GDDR6显存完工 速率高达14Gbps
  9. 设计模式-04.模板方法模式
  10. 编程常用英语词汇(一)