排序可以分为以下几个大类:
(1)插入排序:直接插入排序、折半插入排序和希尔排序
(2)交换排序:快速排序和冒泡排序
(3)选择排序:简单选择排序和堆排序
(4)外部排序:归并排序和基数排序

针对内部排序的效率总结:
(1)时间复杂度为 O(nlogn) 的有:希尔排序、快速排序和堆排序
(2)空间复杂度不为 O(1) 的有:快速排序,采用递归需要用到栈,所以 O(logn) ~ O(n)
(3)对于稳定性来说,只有三种排序是稳定的:插入排序的前两种和冒泡排序
(4)对于全局有序来说:选择排序和交换排序

对于数据初始状态总结:
(1)对于少量数据的排序 —— 直接插入和选择排序
(2)数据基本有序的情况 —— 直接插入、折半插入和冒泡排序(正序)
(3)中等规模的数据,最差和平均差不多 —— 希尔排序
(4)适用于数据规模较大的 —— 堆排序、归并排序、基数排序、快速排序
(5)数据规模较大,数据分布随机 —— 快速排序

【数据结构】对排序的综合总结相关推荐

  1. 数据结构排序算法综合运用及比较(C语言实现)

    排序算法综合及效率比较 实验目的 实验内容 实验要求 实验步骤 概要设计 详细设计 软件测试 设计总结 源程序代码 1.实验目的 (1)熟练掌握几种经典排序的算法(如冒泡排序.选择排序.插入排序.希尔 ...

  2. 数据结构——八大排序(全)

    目录 排序的基本概念和分类 排序算法的稳定性 内排序和外排序 1. 时间性能 2.辅助空间 3.算法的复杂性 4.排序用到的结构体和函数 冒泡排序 排序原理 代码 代码1 代码2(正宗的冒泡排序) 代 ...

  3. 【数据结构】排序算法及优化整理

    排序算法 排序算法 选择排序 Selection Sort 插入排序 Insertion Sort 归并算法 Merge Sort 快速排序 Quick Sort 堆排序 Heap Sort 二叉堆的 ...

  4. 【数据结构】排序相关题目及各种排序方法的总结

    [数据结构之排序] 常用的排序方法有:直接插入排序.希尔排序.冒泡排序.快速排序.简单选择排序.树形选择排序.堆排序.归并排序.基数排序 提示:如有不理解的知识点,请看B站最好的数据结构老师王卓老师的 ...

  5. 鸡尾酒排序算法c语言,[golang] 数据结构-鸡尾酒排序

    吐个槽 又是一个不正经取名的排序算法.真要说和鸡尾酒间的关系,大概就是想喝到鸡尾酒(得到排序好的队列)就要摇晃酒杯让不同的成分混合均匀(向两个方向冒泡排序) 原理 鸡尾酒排序(Cocktail Sor ...

  6. 数据结构------选择排序

    数据结构------选择排序 原理:参考趣学数据结构 代码: #include<stdio.h> #include<stdlib.h> void simpleSelectSor ...

  7. 数据结构-王道-排序

    排序 关于排序算法的视频演示 直接插入排序 从上面的插入排序思想中,不难得到一种简单直接的插入排序算法.假设待排序表在某次过程中属于这种情况. |有序序列\(L[1\ldots i-1]\)|L(i) ...

  8. 希尔排序python 简书_数据结构_排序_直接插入+希尔排序

    数据结构_排序_直接插入排序+希尔排序 其实主要是为了讲述希尔排序,不过插入排序是希尔排序的基础,因此先来讲直接插入排序. 一.直接插入排序 1.原理 下标 0 1 2 3 4 5 6 7 8 -- ...

  9. 常用数据结构以及数据结构的排序算法

    2019独角兽企业重金招聘Python工程师标准>>> 数组 (Array) 在程序设计中,为了处理方便, 把具有相同类型的若干 变量按有序的形式组织起来.这些按序排列的同类数据元素 ...

  10. 【数据结构(C语言)】数据结构-内部排序

    内部排序 文章目录 内部排序 一.概述 (1)排序定义 (2)稳定性 (3)内部排序和外部排序 (4)两种基本操作 (5)数据类型定义 二.分类 (1)插入排序 (2)交换排序 (3)选择排序 (4) ...

最新文章

  1. 中国矿业大学计算机考研复试科目,中国矿业大学复试科目
  2. vue如何输出一个值_怎么在控制台打印出来data里想要的数据? Vue
  3. DeepFashion︱衣物时尚元素关键点定位+时尚元素对齐技术
  4. python词云改颜色_使用Python创建一个与图像颜色匹配的词云
  5. AI:2020年6月23日北京智源大会演讲分享之AI交通专题论坛——11:05-11:35杜博文教授《基于广义时空数据挖掘的交通复杂行为认知-从研究到工业》
  6. 电脑pdf阅读器哪个好用_电脑免费录屏软件哪个好用?这两个录屏方法千万别错过...
  7. efcore根据多个条件更新_EFCore.Sharding(EFCore开源分表框架)
  8. Equipment upload - ERP ACK
  9. oracle 磁盘不分区吗,LINUX停ORACLE软件、数据文件等所在的磁盘分区空间不足的解决思路...
  10. 使用.net Stopwatch class 来分析你的代码
  11. 模板模式(部分方法延迟到子类实现)
  12. 首款搭载鸿蒙os的设备,华为发布会配件汇总,首款搭载 鸿蒙OS 的设备来了
  13. 系统架构设计师含金量_软考高级系统架构设计师如何备考?
  14. python对象之间的关系
  15. Atitit 爬虫 node版 attilax
  16. 加速与缓存技术之Varnish
  17. 科技资讯杂志 科技资讯杂志社科技资讯编辑部2022年第17期目录
  18. 小程序嵌套h5页面_小程序内嵌H5的方法介绍
  19. Excel学习日记:L23-如何计算成绩排名
  20. css空心图形,css画空心箭头

热门文章

  1. .团队组建及项目启动
  2. HDOJ 1071 The area (纯数学题)
  3. flash player10.1 + FMS4中的p2p功能
  4. Windows Mobile 6.5.3 Developer Tool Kit
  5. 关于STM32使用RTC时复位后程序死在 RTC
  6. STM32F103mini教程通用定时器
  7. C++ Primer 5th笔记(chap 17 标准库特殊设施)控制输入格式
  8. Bech32编码 (3)隔离见证地址
  9. 百度超级链XChain(5)XuperBridge 智能合约接口
  10. 区块链BaaS云服务(21)腾讯CCGP”跨链事务“