文档章节

常见排序算法

robinfly
 robinfly
发布于 2017/07/23 19:23
字数 286
阅读 13
收藏 0
点赞 0
评论 0

冒泡排序

  • 时间复杂度 : 最差 O(n^2)、平均O(n^2)
  • 空间复杂度:最佳0、最差O(n)、平均O(1)
  • 稳定

快速排序

  • 时间复杂度:最差O(n^2)、平均O(n*log2n)
  • 空间复杂度:最差 O(n) 冒泡情况、最优O(n logn)
  • 不稳定:例如,a = [1, 2, 2, 3, 5]以 a[2]为基准,大于等于a[2]的排右边,则a[1]与a[2]的相对位置发生变化,使其不稳定。

桶排序

基本思想

  1. 把大量数据切分成基本有序的数据块(桶),
  2. 对桶中的数据作比较排序

基数排序

基本思想:将待排数据中的每组关键字进行桶排序

计数排序

基本思想:对每一个元素记录它出现的次数,就能确定一个数所处位置,

性能比较

  1. 基数排序时间复杂度是O(d*n),桶排序O(n)
  2. 基数排序不做任何比较,需要的桶不多(10个);桶排则可能会做比较、桶也可能也会比较多
  3. 未完......

参考

© 著作权归作者所有

共有 人打赏支持
robinfly
粉丝 1
博文 55
码字总数 11354
作品 0
海淀
程序员
PHP常见排序算法学习

题记: 常见的排序算法有:冒泡排序法,快速排序法,选择排序法,插入排序法,此处作为自己最近面试准备进行的学习笔记,同时也希望能帮到你。 需求:将一个有多个数字的数组进行从小到大的排...

moTzxx
2017/10/27
0
0
[仅供个人参考系列]个人整理基础的排序、查找等算法相关笔记

1.常见排序算法的时间、空间复杂度 2.具体算法的实现 快速排序(根据定位pivot元素的方法,分为简单版和技巧版) 简单版: 复杂版:(请参考剑指offer上79页的相关写法) 直接插入算法: 堆排...

jayxujia123
03/28
0
0
PHP常见排序算法整理学习

题记: 常见的排序算法有:冒泡排序法,快速排序法,选择排序法,插入排序法,此处作为自己最近面试准备进行的学习笔记,同时也希望能帮到你。 需求:将一个有多个数字的数组进行从小到大的排...

u011415782
2017/10/24
0
0
Java实现几种常见排序方法(下)

插入排序的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。其具体步骤参见代码及注释。 /** 插入排序<br/> <ul> <li>从第一个元素开始,该元...

晨曦之光
2012/03/09
0
0
常见排序算法的稳定性分析和结论

常见排序算法的稳定性分析和结论 这几天笔试了好几次了,连续碰到一个关于常见排序算法稳定性判别的问题,往往还是多选,对于我以及和我一样拿不准的同学可不是一个能轻易下结论的题目,当然...

长平狐
2013/01/06
1K
0
常见排序算法 4--简单选择排序

简单排序算法的时间复杂度为n2空间负责度为1 下面上代码。 select——sort.h ///* 简单的选择排序通过n-1次比较,在n-i +1个元素中,找到最小的记录,然后将其与第i个元素交换这样当i=n时,即...

qmiwang
2012/04/02
0
0
常见排序算法小结

http://blog.csdn.net/whuslei/article/details/6442755 排序算法经过了很长时间的演变,产生了很多种不同的方法。对于初学者来说,对它们进行整理便于理解记忆显得很重要。每种算法都有它特...

毛朱
2015/09/11
31
0
十种常见排序算法

1.常见算法分类 十种常见排序算法一般分为以下几种: (1)非线性时间比较类排序:交换类排序(快速排序和冒泡排序)、插入类排序(简单插入排序和希尔排序)、选择类排序(简单选择排序和堆...

architect刘源源
01/28
0
0
算法——快速排序

快速排序可能是应用最广泛的排序算法了。原因是它实现简单,适用于各种不同的输入数据且在一般应用中比其他排序算法都要快得多。 特点:①它是原地排序(只需要一个很小的辅助栈);②且将长...

嘿胖丁
03/04
3
0
常见排序算法及实现

一、冒泡排序 冒泡排序(Bubble Sort)是先从数组第一个元素开始,依次比较相邻两个数,若前者比后者 大,就将两者交换位置,然后处理下一对,依此类推,不断扫描数组,直到完成排序。 这个算...

thanatos_y
2016/07/30
41
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

CoreText进阶(七)-添加自定义View和对其

CoreText进阶(七)-添加自定义View和对其 其它文章: CoreText 入门(一)-文本绘制 CoreText入门(二)-绘制图片 CoreText进阶(三)-事件处理 CoreText进阶(四)-文字行数限制和显示更多...

aron1992
8分钟前
0
0
Python爬虫 爬取百合网的女人们和男人们

学Python也有段时间了,目前学到了Python的类。个人感觉Python的类不应称之为类,而应称之为数据类型,只是数据类型而已!只是数据类型而已!只是数据类型而已!重要的事情说三篇。 据书上说...

p柯西
19分钟前
0
0
在Java中,你真的会日期转换吗

1.什么是SimpleDateFormat 在java doc对SimpleDateFormat的解释如下: SimpleDateFormatis a concrete class for formatting and parsing dates in a locale-sensitive manner. It allows fo......

Java小铺
28分钟前
0
0
Linux系统梳理---系统搭建(二):tomcat的安装和使用

上一章讲到JDK的安装使用,这一章主要记录下服务器tomcat的安装以及部署一个项目. 1.下载tomcat,这里下载的是apache-tomcat-8.5.32.tar.gz 2.创建文件夹,便于管理,和JDK一样,在usr目录下创建t...

勤奋的蚂蚁
38分钟前
0
0
ES15-聚合

1.Terms Aggregation 分组聚合 2.Filter Aggregation 过滤聚合

贾峰uk
39分钟前
0
0
【2018.07.19学习笔记】【linux高级知识 20.27-20.30】

20.27 分发系统介绍 20.28 expect脚本远程登录 20.29 expect脚本远程执行命令 20.30 expect脚本传递参数

lgsxp
42分钟前
0
0
10.32/10.33 rsync通过服务同步~10.35 screen工具

通过服务的方式同步要编辑配置文件:[root@linux-xl ~]# vim /etc/rsyncd.confport=873log file=/var/log/rsync.logpid file=/var/run/rsyncd.pidaddress=192.168.43.21[tes...

洗香香
45分钟前
0
0
与女儿谈商业模式 (3):沃尔玛的成功模式

分类:与女儿谈商业模式 | 标签: 经济学 沃尔玛 陈志武 2007-05-10 09:09阅读(11279)评论(30) 与女儿谈商业模式 (3):沃尔玛的成功模式 陈志武 /文 沃尔玛(Wal-Mart)是另一个有意思的财...

祖冲之
52分钟前
0
0
网页加载速度优化方法总结

1、减少请求 最大的性能漏洞就是一个页面需要发起几十个网络请求来获取诸如样式表、脚本或者图片这样的资源,这个在相对低带宽和高延迟的移动设备连接上来说影响更严重。 2、整合资源 对开发...

Jack088
57分钟前
0
0
dubbo学习

https://blog.csdn.net/houshaolin/article/details/76408399

喵五郎
今天
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部