数据结构----排序
##数据结构—-排序
排序算法 | 时间复杂度 | 空间复杂度 | 稳定性 | 特征1: | 特征2: | ||
最好 | 平均 | 最坏 | |||||
直接插入 | O(n)O(n) O(n) | O(n2)O(n2) O(n^2) | O(n2)O(n2) O(n^2) | O(1)O(1) O(1) | 1 | 每趟确定一个最值 | 特征2: |
冒泡 | O(n)O(n) O(n) | O(n2)O(n2) O(n^2) | O(n2)O(n2) O(n^2) | O(1)O(1) O(1) | 1 | 每趟确定一个最值 | 可能循环完成之前就排好序了 |
简单选择 | O(n2)O(n2) O(n^2) | O(n2)O(n2) O(n^2) | O(n2)O(n2) O(n^2) | O(1)O(1) O(1) | 0 | 每趟确定一个最值 | 特征2: |
希尔 | O(n(1.3))O(n(1.3)) O(n^(1.3)) | O(1)O(1) O(1) | 0 | 最后一趟才有序 | 最小增量排序 | ||
快速 | O(nlog2n)O(nlog2n) O(nlog2^n) | O(nlog2n)O(nlog2n) O(nlog2^n) | O(n2)O(n2) O(n^2) | O(log2n)O(log2n) O(log2^n) | 0 | 最后一趟才有序 | 分治法,需要一个枢轴 |
堆排序 | O(nlog2n)O(nlog2n) O(nlog2^n) | O(nlog2n)O(nlog2n) O(nlog2^n) | O(nlog2n)O(nlog2n) O(nlog2^n) | O(1)O(1) O(1) | 0 | 每趟确定一个最值 | 建堆-取根-调整堆 |
归并排序 | O(nlog2n)O(nlog2n) O(nlog2^n) | O(nlog2n)O(nlog2n) O(nlog2^n) | O(nlog2n)O(nlog2n) O(nlog2^n) | O(n)O(n) O(n) | 1 | 最后一趟才有序 | 1、划分 2、归并 |
基数排序 | O(d(n+r))O(d(n+r)) O(d(n+r)) | O(d(n+r))O(d(n+r)) O(d(n+r)) | O(d(n+r))O(d(n+r)) O(d(n+r)) | O(r)O(r) O(r) | 1 | 每一趟按不同关键字有序 | 分配、收集 |
最后一趟才有序:最后一趟之前,整体都是无序的(不存在连续的顺序子序列)
每趟确定一个最值:在最后一趟前,存在连续的顺序子序列
基数排序
LSD: 先排次要的关键字,最后排主要的关键字
MSD:先排主关键字,最后排最低层次的关键字基数排序中LSD方法:若有N种关键字类型(就是存在个位、十位、百位。。。)那么对于Key(i)【0<= i <= N-2】时候要用稳定的排序方式。
未完待续–
数据结构----排序相关推荐
- 数据结构---排序算法的总结
数据结构-排序算法的总结 分类 冒泡排序,时间复杂度O(n x n),空间复杂度O(1),稳定 简单选择排序,时间复杂度O(n x n),空间复杂度O(1),不稳定 希尔排序,时间复杂度O(n^1.3 ...
- 数据结构-排序基础代码
数据结构-排序基础代码 1.快排的递归算法: void QuickSort(int A[],int n){Qsort(A,0,n-1); } void Qsort(int A[],int left,i ...
- 【数据结构排序算法系列】数据结构八大排序算法
排序算法在计算机应用中随处可见,如Windows操作系统的文件管理中会自动对用户创建的文件按照一定的规则排序(这个规则用户可以自定义,默认按照文件名排序)因此熟练掌握各种排序算法是非常重要的,本博客将 ...
- 数据结构-排序算法总结与感悟
数据结构-排序算法总结 一,排序的基本概念 排序:有n个记录的序列{R1,R2,-,Rn},其相应关键字的序列是{K1,K2, -,Kn },相应的下标序列为1,2,-, n.通过排序,要求找出当前下 ...
- C++基础-介绍·数据结构·排序·算法
C++基础-介绍·数据结构·排序·算法 特点 使用方向 RPC Data Struct 数据结构 栈 Stack 内存分配中的栈 队列 List 数组 Array 链表 LinkTable 树 Tre ...
- 数据结构-排序算法(c语言实现篇)
数据结构-排序算法(c语言实现篇) 排序算法是非常常用的算法,从介绍排序的基本概念,到介绍各种排序算法的思想.实现方式以及效率分析.最后比较各种算法的优劣性和稳定性. 1 排序的概念及应用 1.1 排 ...
- 小孩的游戏 - 2021数据结构 排序和选择实验题
小孩的游戏 - 2021数据结构 排序和选择实验题 pre 做都做了, 干脆发上来算了 : D 题目分析 算法与数据结构实验题 5.18 小孩的游戏 ★实验任务 一群小孩子在玩游戏,游戏规则是这样子, ...
- 数据结构排序算法实验报告_数据结构与算法-堆排序
堆排序 堆排序是指利用堆这种数据结构所设计的一种排序算法.堆是一个近似完全二叉树的结构,并同时满足堆的性质:即子节点的键值或索引总是小于(或者大于)它的父节点,堆排序的时间复杂度为O(nlogn).( ...
- 20175330 数据结构-排序(选做)
要求 在数据结构和算法中,排序是很重要的操作,要让一个类可以进行排序,有两种方法: 有类的源代码,针对某一成员变量排序,让类实现Comparable接口,调用Collection.sort(List) ...
最新文章
- Nat. Rev. Neurol. | 机器学习在神经退行性疾病诊断和治疗中的应用
- 操作系统安装与优化:chapter8 虚拟机
- (转)常用正则表达式
- delphi 7 学习步骤
- ON_COMMAND_RANGE用法
- 在Windows 7解决GAC错误
- 通过opencv的函数进行图片修复:cv2.inpaint()
- Java学习笔记之log4j与commons-logging转
- zookeeper入门综合概要介绍
- C语言 计算总分和平均数
- Pandas日期时间格式化
- 如何挑选合适的卫星影像
- 不下心删了线上环境mysql数据库数据,辛亏有惊无险
- 向量组/矩阵/秩的理解
- 什么是单工,半双工,全双工
- python中时间模块datetime总结
- Java Web基础面试题
- 中位数/平均数/众数/方差/标准差
- 脚本调度-sqoop导出分区表-判断分区目录是否存在
- Qt网路与通信(获取本机IP、MAC、IPV6子网掩码等网络信息)
热门文章
- sr锁存器 数电_C06. SR锁存器的认识
- java table 设置长度_Java字节码lookupswitch和tableswitch总指令长度
- linux配置php mysql_Linux下LAMP(Apache+PHP+MySql)环境配置
- 检查已终止。收集事实数据时检测到错误
- 调用微信支付接口总结
- 设计模式学习笔记(1)——单例模式
- 决策树算法原理(上)
- 【随机过程】马尔可夫链(2)
- 笔记-Microsoft SQL Server 2008技术内幕:T-SQL语言基础-02 单表查询
- SQL Server IDENDITY 的用法