我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python 快速排序实现

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python 快速排序实现


  1. import random

  2. num_list = []
  3. for x in range(30):
  4.     num_list.append(random.randint(1, 500))

  5. list_len = len(num_list)
  6. print(list_len)


  7. def quick_sort(array, begin, end):
  8.     # (1) 104, 17, 510,30,100   这是用来说明的例子,请按前面的序号阅读
  9.     #      i               j
  10.     if begin < end:
  11.         i, j = begin, end
  12.         # 设置临时基准
  13.         temp = array[i]
  14.         # --------------------------------------------
  15.         while i < j:
  16.             # 如果列表后边的数,比基准数大或相等,j则前移一位,直到出现第一个比基准数小的数
  17.             while (i < j) and (array[j] >= temp):
  18.                 j = j - 1
  19.             # 找到后把第j个元素赋值给第i个元素
  20.             array[i] = array[j] # (2)100,17,510,30,100 (4)100, 17, 30, 30, 510
  21.                                   #   i             j               i  j <-- j
  22.             # 若前边的数比基准数小或相等,i则后移一位,直到出现第一个比基准数大的数
  23.             while (i < j) and (array[i] <= temp):
  24.                 i = i + 1
  25.             array[j] = array[i] # (3)100,17,510, 30,510 (5) 00,17,30,  30, 510
  26.                                  #     i --> i       j             i-->ij
  27.         # ---------------------------------------------

  28.         # 做完第一轮while比较之后,list被分成了两个list,且i=j
  29.         array[i] = temp # (6)100,17,30,104,510 这是第一轮结束之后的情况.
  30.                                       # ij
  31.         # 此时,以第一轮选择的temp为分割点,分成两个list.左边list里的项都比temp小,右边list里的项都比temp大
  32.         # 递归前后半区
  33.         quick_sort(array, begin, i - 1)
  34.         quick_sort(array, j + 1, end)
  35.     return array

  36. print("The sorted result is : ")
  37. quick_sort(num_list, 0, len(num_list)-1)
  38. print(num_list)

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python 快速排序实现

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python实现快速排序

def sortList(alist):    alen = len(alist)    if alen == 0:        return alist    if alen > 0:        aitem = alist[alen
2023-01-31

python 快速排序实现

import random num_list = []for x in range(30): num_list.append(random.randint(1, 500))list_len = len(num_list)print(l
2023-06-02

快速排序python实现

快速排序快速排序的实现同样使用分治法,它的原理是从序列中选择一个值作为基准值,然后分成比基准值小的序列集合和比基准值小的序列集合和与基准值相等的序列集合。再将比基准值小的序列集合和比基准值小的序列集合再次进行选择基准值分割,最后再从下到上每
2023-01-31

Python如何实现快速排序

这篇文章主要介绍“Python如何实现快速排序”,在日常操作中,相信很多人在Python如何实现快速排序问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Python如何实现快速排序”的疑惑有所帮助!接下来,请跟
2023-06-04

python中怎样实现快速排序

这篇文章将为大家详细讲解有关python中怎样实现快速排序,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。def quicksort(array): less = [];greater =
2023-06-04

快速排序的四种python实现

快速排序算法,简称快排,是最实用的排序算法,没有之一,各大语言标准库的排序函数也基本都是基于快排实现的。本文用python语言介绍四种不同的快排实现。1. 一行代码实现的简洁版本quick_sort = lambda array: arra
2023-01-31

用Python怎么实现快速排序

用Python实现快速排序的方法:1、定义一个名为quick_sort的函数,使用递归的方法来实现快速排序;2、检查数组的长度,如果长度小于等于1,则直接返回数组,否则,选择数组中的第一个元素作为枢纽元素(pivot),然后将数组分成比枢纽
用Python怎么实现快速排序
2023-12-18

python 三行代码实现快速排序

python 三行代码实现快速排序最近在看 python cookbook , 里面的例子很精彩,这里就帮过来,做个备忘录主要利用了行数的递归调用和Python的切片特性,解释一下每行代码的含义:第1行: #coding:utf-8 指定
2023-01-31

python快速排序算法怎么实现

快速排序是一种常用的排序算法,其算法思想是通过递归地将数组分为较小和较大的两个子数组,然后不断重复这个过程,直到整个数组有序。下面是用Python实现的快速排序算法:```pythondef quick_sort(arr):if len(a
2023-08-15

快速排序的算法思想及Python版快速排序的实现示例

快速排序是C.R.A.Hoare于1962年提出的一种划分交换排序。它采用了一种分治的策略,通常称其为分治法(Divide-and-ConquerMethod)。 1.分治法的基本思想 分治法的基本思想是:将原问题分解为若干个规模更小但结构
2022-06-04

Python3实现快速排序、归并排序、堆

# -*- coding: utf-8 -*-# @Time : 2019-03-26 16:46# @Author : Jayce Wong# @ProjectName : leetcode# @FileNa
2023-01-31

Python实现快速排序算法及去重的快速排序的简单示例

快速排序由于排序效率在同为O(N*logN)的几种排序方法中效率较高,因此经常被采用。 该方法的基本思想是: 1.先从数列中取出一个数作为基准数。 2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。 3.再对左右
2022-06-04

Python中怎么实现快速排序算法

Python中怎么实现快速排序算法,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Python实现快速排序算法快速排序算法是一种基于交换的高效的排序算法,由C.R.A.Hoare
2023-06-02

web如何实现快速排序

这篇文章主要为大家展示了“web如何实现快速排序”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“web如何实现快速排序”这篇文章吧。快速排序是对冒泡排序的一种改进。它的基本思想是:通过一次排序将要
2023-06-27

C语言实现快速排序

快速排序不一定是稳定排序,这篇文章主要为大家详细介绍了C语言实现快速排序算法,具有一定的参考价值,感兴趣的同学可以借鉴阅读
2023-05-14

php怎么实现快速排序

快速排序是一种基于分治思想的排序算法,可以用PHP实现如下:function quickSort($arr) {$length = count($arr);if ($length <= 1) {return $arr;}$pivot_ke
php怎么实现快速排序
2024-03-15

python实现快速排序的方法是什么

快速排序是一种高效的排序算法,其基本思想是通过一趟排序将待排序的数据分割成独立的两部分,其中一部分数据比另一部分数据小,然后再分别对这两部分数据进行排序,重复这个过程直到整个序列有序。Python实现快速排序的方法如下:```pythond
2023-08-18

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录