Python - 快速排序

手写一遍快速排序,加深记忆。

# 准备被排序的数组
array_to_be_sorted = [int(i) for i in input().split()]def quick_sort(start, end, arr):"""快速排序利用了 list 作为入参时其中的值可以被更更改的性质。:start: 排序起点:end: 排序终点:arr: 需要被排序的序列"""if start >= end:        # 此时排序结束returnlow, high = start, end  # 备份入参pivot = arr[low]        # 起始选择的 轴,注意轴实际上是在下一步循环中最开始被覆盖的小元素的备份(可以这么理解)while low < high:       # 交换轴两边的数据 - 比轴小的放到左边,比轴大的放到右边 - 这样实际上是把 pivot 移到了自己正确的排序位置上while low < high and arr[high] >= pivot:  # 寻找在轴右边且比轴小的元素high -= 1arr[low] = arr[high]                      # 把找到的大元素移到轴的左边,注意此时 high 位置的元素已经没有意义了while low < high and arr[low] < pivot:    # 寻找在轴左边且比轴大的元素low += 1arr[high] = arr[low]                      # 把找到的小元素移到轴的右边,挪入之前 high 腾出来的空位arr[low] = pivot        # 还原轴的值,之前被覆盖了。quick_sort(start, low - 1, arr)  # 轴的位置排好了,排左边的部分quick_sort(low + 1, end, arr)    # 排右边的部分# 排序
quick_sort(0, len(array_to_be_sorted) - 1, array_to_be_sorted)
print(array_to_be_sorted)

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实现快速排序的方法(含实例代码)...

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

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

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

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

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

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

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

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

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

最新文章

  1. 使用 IntraWeb (5) - 页面布局之 TFrame
  2. linux 崩溃文件 coredump 简介
  3. PHP 基础知识-数组
  4. spring boot报错Invalid numeric value: Leading zeroes not allowed
  5. 【CentOS 7笔记46】,crondtab任务计划和chkconfig系统服务管理#
  6. 从容器到容器云,什么才是 Kubernetes 的本质?
  7. VSCode设置命令行终端为Git
  8. 在Java中调用Python,java面试题,java初级笔试题
  9. 半导体物理与器件pdf施敏_SiC半导体材料的基本性质和应用
  10. At present, Huawei has two more important
  11. 修改Unity中Lua文件的默认打开程序
  12. xtrabackup 原理详解
  13. 淘宝网视频下载的方法
  14. 联想服务器重装系统后usb无法启动,联想启天装win7系统的详细教程完美解决USB不能用的问题...
  15. Invalid bound statement (not found): org.seckill.dao.Suc
  16. 软件测试自动登录、浏览记录方向原理——基于Cookie和Session的区别和应用场景
  17. Vue打包出现Browserslist: caniuse-lite is outdated
  18. 安卓图书信息管理系统
  19. mysql 统计不同成绩阶段的人数
  20. 基于Acgis从全球.nc数据中提取中国地图并计算地区CO2值

热门文章

  1. 上班摸鱼又有了新姿势
  2. 市面上降噪最好的蓝牙耳机,618必备降噪蓝牙耳机推荐
  3. 老马闲评数字化「2」您的企业是否应该急于数字化转型?
  4. Highcharts 笔记
  5. BZOJ 4184: shallot 线性基+线段树分治
  6. 【BZOJ 4184】shallot 线性基
  7. git pull时出现Enter passphrase for key ‘xxx/id_rsa‘
  8. 第2篇|文献研读|nature climate change|减缓气候变化和促进热带生物多样性的碳储量走廊
  9. windows XP 开机网络连接慢 的解决方法
  10. Rust原子类型和内存排序