随机生成从大到小排序python_随机快速排序(使用Python描述)

title

代码复制自随机快速排序的实现-夜雨最萌.和快速排序一样呀😂

随机快速排序与快速排序的思路一样,差异就是取主元之前,随机快速排序多了一个步骤:而随机快速排序是随机取得一个元素,但是又会与最后一个元素交换位置.取得主元的下标位置实际上还是最后一个下标.快速排序是习惯取得最后一个元素.

此算法特性

此算法适用场景

代码实现

import random

def random_quicksort(a,left,right):

if(left

mid = random_partition(a,left,right)

random_quicksort(a,left,mid-1)

random_quicksort(a,mid+1,right)

def random_partition(a,left,right):

########################################

t = random.randint(left,right) #生成[left,right]之间的一个随机数

a[t],a[right] = a[right],a[t]

########################################

# 相比经典随机快速排序,增加了上面两行代码

x = a[right]

i = left-1 #初始i指向一个空,保证0到i都小于等于 x

for j in range(left,right): #j用来寻找比x小的,找到就和i+1交换,保证i之前的都小于等于x

if(a[j]<=x):

i = i+1

a[i],a[j] = a[j],a[i]

a[i+1],a[right] = a[right],a[i+1] #0到i 都小于等于x ,所以x的最终位置就是i+1

return i+1

exam_list = [8,6,15,14,13]

random_quicksort(exam_list,0,len(exam_list)-1)

print(exam_list)

参考

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/381225.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux守护进程fifo,linux守护进程配置文件

syslogd 是一种守护进程&#xff0c;它负责记录(写到磁盘)从其它程序发送到系统的消息。这个服务尤其常被某些守护进程所使用&#xff0c;这些守护进程不会有另外的方法来发出可能有问题存在的信号或向用户发送消息。1.文件格式/etc/syslog.conf是syslog守护程序的配置文件.sys…

【大数据】NiFi 的基本使用

NiFi 的基本使用 1.NiFi 的安装与使用1.1 NiFi 的安装1.2 各目录及主要文件 2.NiFi 的页面使用2.1 主页面介绍2.2 面板介绍 3.NiFi 的工作方式3.1 基本方式3.2 选择处理器3.3 组件状态3.4 组件的配置3.4.1 SETTINGS&#xff08;通用配置&#xff09;3.4.2 SCHEDULING&#xff0…

Asp.net页面事件引发后台程序处理原理【转】

以前在ASP中&#xff0c;不存在事件处理&#xff0c;传统的处理方法是通过隐藏文本框来提交不同的参数进行区别用户的不同动作&#xff0c;或则用不同的URL查询字符串来区别。ASP.NET中出现了事件处理&#xff0c;让开发人员区分用户动作方便并简单了许多。 实际上&#xff0c;…

常用linux双机软件,双机热备软件_Windows与Linux双机热备软件有哪些

Windows与Linux双机热备软件有哪些众所周知&#xff0c;双机热备可以提供服务器高可用性&#xff0c;但linux操作系统部署双机热备开源软件即可&#xff0c;而Windows操作系统的需要付费的Rose。1、Rose HA通过Rose HA系统把两台服务器与磁盘阵列系统相连&#xff0c;操作系统、…

python datatime 平均值_python求数据的时间平均

#!/usr/bin/python# encoding: utf-8import refrom itertools import imap, ifilter# 定义正则表达式patt re.compile(r"""(?P\d{4}-\d{2}-\d{2}\s\d{2}:\d{2}:\d{2}) # 日期时间\s*&#xff0c;\s* # 分隔符号(?P\d) # 数值""", re.I|re.…

加密和解密类

&#xfeff;usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Security.Cryptography;usingSystem.IO;usingSystem.Web;namespaceThewolfs.Framework.Text{ ///<summary>///加密类 ///</summary>publicclassTwE…

linux 如何打包分区文件,Linux基础------文件打包解包---tar命令,文件压缩解压---命令gzip,vim编辑器创建和编辑正文件,磁盘分区/格式化,软/硬链接...

作业一&#xff1a;1)将用户信息数据库文件和组信息数据库文件纵向合并为一个文件/1.txt(覆盖)cat /etc/passwd /etc/group > /1.txt2)将用户信息数据库文件和用户密码数据库文件纵向合并为一个文件/2.txt(追加)cat /etc/passwd /etc/shadow >> /2.txt3)将/1.txt、/2.…

python处理中文字符串_处理python字符串中的中文字符

# -*- coding:utf-8 -*-import sys,ostxta open(a.txt,r)str for line in txta:str line.strip().decode(utf-8)txta.close()for word in str:print word.encode(utf-8)直接输出&#xff0c;是会乱码的&#xff0c;得先解码&#xff0c;再编码。参考网址&#xff1a;http://…

继承之接口知识点和思考练习

知识点 接口是一种数据结构&#xff0c;它包含了一组函数型方法&#xff0c;通过这组数据结构&#xff0c;用户代码可以调用组件的功能。 访问修饰符 interface 接口名 { 接口体 } 接口声明时&#xff0c;注意一下几个方面&#xff1a; 1&#xff09;访问修饰符只能是new…

sqlserver大数据表操作慢_架构师必看!操作日志系统搭建秘技

​在Java开发中&#xff0c;我们经常会遇到一个棘手的问题&#xff1a;记录用户的操作行为。某些操作是相对简单的&#xff0c;我们可以逐条记录。但是某些操作行为却很难记录&#xff0c;例如编辑操作。在某一次操作中&#xff0c;用户可能编辑了对象A的几个属性&#xff0c;而…

linux 卸载sphinx,sphinx管理脚本,实现sphinx启动、关闭、重启、生成索引功能 | linux运维小站–linux系统架构_服务器运维_Linux运维工程师工作手札...

最新sphin问题比较多&#xff0c;生成主索引后无法连接上sphinx的&#xff0c;需要重启searchd进程&#xff0c;为了方便管理sphinx&#xff0c;参考网上资料&#xff1a;http://blog.csdn.net/yagas/article/details/6718532 修改一个适合自己的sphinx管理脚本。[codesyntax…

面试题(C++09:Autodesk)

网上收集的Autodesk面试题&#xff1a;1. 在类的普通成员函数中调用虚函数&#xff0c;情况是怎么样的&#xff1f; 具体来说&#xff0c;问题如下&#xff1a; 在类的普通成员函数fun1中调用了本类中的虚函数vfun2。 如果在外部有该类的对象指针pobj&#xff0c…

sql共享功能目录无法更改_大企业数据库服务首选!AliSQL这几大企业级功能你不可不知...

MySQL代表了开源数据库的快速发展&#xff0c;从2004年前后的Wiki、WordPress等轻量级Web 2.0应用起步&#xff0c;到2010年阿里巴巴在电商及支付场景大规模使用MySQL数据库&#xff0c;再到2012年开始阿里云RDS for MySQL为成千上万家客户提供可靠的关系数据库服务&#xff0c…

linux制作成后台服务,把dotnetcore 控制台app设置成linux后台服务

1&#xff0c;新建service文件vimvim /etc/systemd/system/dotnetTest.serviceip内容[Unit]Descriptiondotnet consoleit[Service]ioWorkingDirectory/home/useeinfo/publishconsoleExecStart/usr/bin/dotnet /home/useeinfo/publish/ConsoleApp3.dlltestRestartalwaysserviceS…

linux中汇编语言指令li,汇编语言IMUL指令:有符号数乘法

IMUL(有符号数乘法)指令执行有符号整数乘法。与 MUL 指令不同&#xff0c;IMUL 会保留乘 积的符号&#xff0c;实现的方法是&#xff0c;将乘积低半部分的最高位符号扩展到高半部分。x86 指令集支持三种格式的 IMUL 指令&#xff1a;单操作数、双操作数和三操作数。单操作数格式…

递归下降语法分析器的构建_一文了解函数式查询优化器Spark SQL Catalyst

大数据技术与架构点击右侧关注&#xff0c;大数据开发领域最强公众号&#xff01;暴走大数据点击右侧关注&#xff0c;暴走大数据&#xff01;记录一下个人对sparkSql的catalyst这个函数式的可扩展的查询优化器的理解&#xff0c;目录如下&#xff1a;0. Overview1. Catalyst工…

面试英语自我介绍的常用词汇

面试英语自我介绍的常用词汇 面试英语自我介绍的常用词汇 Words & Expressions&范文 精华汇总贴 想 找一份满意的工作吗&#xff1f;面试中面对外国老板连珠炮似的提问&#xff0c;有没有觉得心慌意乱、无所适从&#xff1f;求职过程中面试尤为重要&#xff0c;回答问题…

被远程机器长时间无响应 (错误码:[308])_自动折叠式“Rollbot”为完全不受束缚的软机器人铺平了道路...

如今&#xff0c;大多数软机器人依靠外部电源和控制&#xff0c;使它们与车外系统连接或用硬件组装。现在&#xff0c;来自哈佛大学约翰保尔森工程与应用科学学院&#xff08;SEAS&#xff09;和加州理工学院的研究人员开发了受折纸结构启发的软机器人系统&#xff0c;可以根据…

kali linux编辑记事本,kali linux操作系统

最近在研究kali linux***操作系统&#xff0c;可能有许多人还不知道这个系统&#xff0c;但是&#xff0c;我可以告诉大家&#xff0c;你想成为电影***那样&#xff0c;这个操作系统能够帮助你实现Kali Linux 前身是著名***测试系统BackTrack &#xff0c;是一个基于 Debian 的…

如何系统地自学python~知乎_经验分享 | 如何系统地自学 Python?

是否非常想学好 Python&#xff0c;一方面被琐事纠缠&#xff0c;一直没能动手&#xff0c;另一方面&#xff0c;担心学习成本太高&#xff0c;心里默默敲着退堂鼓?幸运的是&#xff0c;Python 是一门初学者友好的编程语言&#xff0c;想要完全掌握它&#xff0c;你不必花上太…