五、快速排序

基本思想:  通过一趟排序将待排序记录分割成独立的两部分,其中一部分记录的关键字均比另一部分关键字小,则分别对这两部分继续进行排序,直到整个序列有序。

算法实现:

#coding: utf-8

#!/usr/bin/python

import random

#随机生成0~100之间的数值

def get_andomNumber(num):

lists=[]

i=0

while i

lists.append(random.randint(0,100))

i+=1

return lists

# 快速排序

def quick_sort(lists, left, right):

if left >= right:

return lists

key = lists[left]

low = left

high = right

while left < right:

while left < right and lists[right] >= key:

right -= 1

lists[left] = lists[right]

while left < right and lists[left] <= key:

left += 1

lists[right] = lists[left]

lists[right] = key

quick_sort(lists, low, left - 1)

quick_sort(lists, left + 1, high)

return lists

a = get_andomNumber(10)

print("排序之前:%s" %a)

b = quick_sort(a,0,len(a)-1)

print("排序之后:%s" %b)

九大排序算法Java实现

之前学习数据结构与算法时花了三天时间整理九大排序算法,并采用Java语言来实现,今天第一次写博客,刚好可以把这些东西从总结的文档中拿出来与大家分享一下,同时作为自己以后的备忘录. 1.排序算法时间复杂 ...

九大排序算法Demo

1. 冒泡排序 冒泡排序(Bubble Sort)是一种简单的排序算法.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换, ...

【转】九大排序算法-C语言实现及详解

概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存. 我们这里说说八大排序就是内部排序. 当n较大, ...

你需要知道的九大排序算法【Python实现】之堆排序

六.堆排序 ​堆排序是一种树形选择排序,是对直接选择排序的有效改进. ​堆的定义下:具有n个元素的序列 (h1,h2,...,hn),当且仅当满足(hi>=h2i,hi>=2i+1)或(h ...

你需要知道的九大排序算法【Python实现】之插入排序

三.插入排序 基本思想:插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的.个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2).是稳定的排序方法.插入算 ...

你需要知道的九大排序算法【Python实现】之基数排序

八.基数排序 基本思想:基数排序(radix sort)属于"分配式排序"(distribution sort),又称"桶子法"(bucket sort)或bi ...

你需要知道的九大排序算法【Python实现】之归并排序

四.归并排序 基本思想:归并(Merge)排序法是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的.然后再把有序子序列合并为整体有序序列.归并过程:比 ...

你需要知道的九大排序算法【Python实现】之冒泡排序

二.冒泡排序 基本思想:它的思路很有特点循环,两两向后比较.它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来.走访数列的工作是重复地进行直到没有再需要交换,也就是说该数 ...

你需要知道的九大排序算法【Python实现】之选择排序

一.选择排序 基本思想:选择排序的思想非常直接,不是要排序么?那好,我就从所有序列中先找到最小的,然后放到第一个位置.之后再看剩余元素中最小的,放到第二个位置--以此类推,就可以完成整个的排序工作了. ...

随机推荐

html嵌入样式表

1.针对文件中的字体还有属性进行设置主要设置文字的大小及其颜色问题,未涉及div飘操作 处理页面CSS 先检测该内容部分是否已经设定了样式,如果没有单独设定再按照总体设计进行限定. eg:  h1 h ...

&lbrack;转&rsqb;Visual Studio 实用扩展推荐

本文转自 http://www.cnblogs.com/stg609/p/3726898.html Visual Studio 拥有非常不错的可扩展性,在之前的文章中,我也给大家示范了如何进行编辑器的 ...

shopping cart&lt&semi;代码&gt&semi;

i = ["iphone 6000", "bicycle 1000", "coffee 50", "python book 100 ...

Qt之JSON生成与解析

JSON(JavaScript Object Notation)是一种轻量级的数据交换格式.它基于JavaScript(Standard ECMA-262 3rd Edition - December ...

android学习之BUG——The connection to adb is down&comma; and a severe error has occured&period;

开始--运行--cmd 进入命令提示符 输入netstat -ano 即可看到所有连接的PID 之后在任务管理器中找到这个PID所对应的程序如果任务管理器中没有PID这一项,可以在任务管理器中选&qu ...

一次基于Vue&period;Js的用户体验优化 (vue drag)

一.写在前面 半年以前,第一次在项目上实践VueJs,由于在那之前,没有Angular,avalon等框架的实践经验,所以在Vue的使用上,没有给自己总结出更多的经验和体验.随着项目进行和优化改版,无 ...

node&period;js认识及学习资料

2011年阿里就已经开始在生产环境中使用nodejs. 阿里的技术栈中,Java是最核心的,Nodejs扮演怎样的一个角色? 1. 基础设施大部分采用Java实现,变化较少,有事务要求的Busines ...

TCGA系列--fusion

http://www.tumorfusions.org/ 其他: COSMIC has a list of "curated fusion" http://cancer.sange ...

【转】pscp实现远程文件(夹)传输

python快速排序算法没看懂_你需要知道的九大排序算法【Python实现】之快速排序...相关推荐

  1. 九大排序算法Java实现

    之前学习数据结构与算法时花了三天时间整理九大排序算法,并采用Java语言来实现,今天第一次写博客,刚好可以把这些东西从总结的文档中拿出来与大家分享一下,同时作为自己以后的备忘录. 1.排序算法时间复杂 ...

  2. c语言折半排序的程序,C语言实现九大排序算法的实例代码

    直接插入排序 将数组分为两个部分,一个是有序部分,一个是无序部分.从无序部分中依次取出元素插入到有序部分中.过程就是遍历有序部分,实现起来比较简单. #include void insertion_s ...

  3. 九大排序算法,你会几个?

    概述排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存. 我们这里说说八大排序就是内部排序. 当n较大,则 ...

  4. 九大排序算法-C语言实现及详解

    概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存. 我们这里说说八大排序就是内部排序. 当n较大, ...

  5. 九大排序算法告诉你什么是内部排序和外部排序

    概述 排序有内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存. 我们通常所说的排序算法往往指的是内部排序算法, ...

  6. 九大排序算法时间复杂度、空间复杂度、稳定性

    排序算法 平均时间复杂度 最坏时间复杂度 最好时间复杂度 空间复杂度 稳定性 冒泡排序 O(n²) O(n²) O(n) O(1) 稳定 直接选择排序 O(n²) O(n²) O(n) O(1) 不稳 ...

  7. (面经总结)一篇文章带你整理面试过程中常考的九大排序算法

    文章目录 一.二分插入排序 1. 原理 2. 代码 二.冒泡排序 1. 原理 2. 代码 三.插入排序算法 1. 原理 2. 代码 四.快速排序算法 1. 原理 2. 代码 五.希尔排序 1. 原理 ...

  8. JAVA 九大排序算法

    1.冒泡排序 public class Bobble {private static void sort(int[] arrays) {//一次性读取到高速缓存中,避免cache missint le ...

  9. 九大排序算法之冒泡排序(原理及实现)

    1.算法原理:比较两个相邻的元素,将值大的元素右移. 2.算法思路:首先第一个元素和第二个元素比较,如果第一个大,则二者交换,否则不交换:然后第二个元素和第三个元素比较,如果第二个大,则二者交换,否则 ...

最新文章

  1. 如何区分山寨版网管软件
  2. TP5 封装多业务的发送短信功能(包括国际短信)
  3. 【C语言】 Linux内核源码-- do...while(0)解析
  4. 爬虫实例十 XX酒店详情信息
  5. Windows下程序猿开发利器
  6. Adobe全系列软件介绍
  7. 【单调队列优化】CF319C——Kalila and Dimna in the Logging Industry
  8. Gif录制神器GifCam
  9. 龙卷风java_程序设计-理解java继承-遁地龙卷风
  10. android 视频开发2分之2(仿美拍,糗百)
  11. 2023年考ACP云计算
  12. Mybatis使用及原理
  13. 智能手表喧嚣之下的静默力量:华米科技的价值创造者身份
  14. C语言学习笔记10-指针(动态内存分配malloc/calloc、realloc、释放free,可变数组实现;Tips:返回指针的函数使用本地变量有风险!;最后:函数指针)
  15. keil 5.37安装AC5编译器
  16. 转发:python的八荣八耻
  17. 孤荷凌寒自学python第四十一天python的线程同步之Event对象
  18. 香橙派装php_从安装到新特性浅析, 一文了解php8做了哪些改变
  19. 锚链接返回顶部,同页面、不同页面跳转
  20. 【备忘】python绘制地图实例

热门文章

  1. ArcGIS + vue 项目实战
  2. 辗转相除法和更相减损法 定义,原理,Java实现以及优化
  3. oracle给账号添加权限
  4. Jupyter安装过程遇到问题汇总
  5. c语言输入三个数从大排到小,自学考试《C语言程序设计》练习题及答案_第3页...
  6. gpio信号过冲问题
  7. 文件树式页面内容组织版式
  8. HTML TabIndex属性
  9. linux服务器开放指定端口号相关命令
  10. 调整的R方_如何选择回归模型