【数据结构】对排序的综合总结
排序可以分为以下几个大类:
(1)插入排序:直接插入排序、折半插入排序和希尔排序
(2)交换排序:快速排序和冒泡排序
(3)选择排序:简单选择排序和堆排序
(4)外部排序:归并排序和基数排序
针对内部排序的效率总结:
(1)时间复杂度为 O(nlogn) 的有:希尔排序、快速排序和堆排序
(2)空间复杂度不为 O(1) 的有:快速排序,采用递归需要用到栈,所以 O(logn) ~ O(n)
(3)对于稳定性来说,只有三种排序是稳定的:插入排序的前两种和冒泡排序
(4)对于全局有序来说:选择排序和交换排序
对于数据初始状态总结:
(1)对于少量数据的排序 —— 直接插入和选择排序
(2)数据基本有序的情况 —— 直接插入、折半插入和冒泡排序(正序)
(3)中等规模的数据,最差和平均差不多 —— 希尔排序
(4)适用于数据规模较大的 —— 堆排序、归并排序、基数排序、快速排序
(5)数据规模较大,数据分布随机 —— 快速排序
【数据结构】对排序的综合总结相关推荐
- 数据结构排序算法综合运用及比较(C语言实现)
排序算法综合及效率比较 实验目的 实验内容 实验要求 实验步骤 概要设计 详细设计 软件测试 设计总结 源程序代码 1.实验目的 (1)熟练掌握几种经典排序的算法(如冒泡排序.选择排序.插入排序.希尔 ...
- 数据结构——八大排序(全)
目录 排序的基本概念和分类 排序算法的稳定性 内排序和外排序 1. 时间性能 2.辅助空间 3.算法的复杂性 4.排序用到的结构体和函数 冒泡排序 排序原理 代码 代码1 代码2(正宗的冒泡排序) 代 ...
- 【数据结构】排序算法及优化整理
排序算法 排序算法 选择排序 Selection Sort 插入排序 Insertion Sort 归并算法 Merge Sort 快速排序 Quick Sort 堆排序 Heap Sort 二叉堆的 ...
- 【数据结构】排序相关题目及各种排序方法的总结
[数据结构之排序] 常用的排序方法有:直接插入排序.希尔排序.冒泡排序.快速排序.简单选择排序.树形选择排序.堆排序.归并排序.基数排序 提示:如有不理解的知识点,请看B站最好的数据结构老师王卓老师的 ...
- 鸡尾酒排序算法c语言,[golang] 数据结构-鸡尾酒排序
吐个槽 又是一个不正经取名的排序算法.真要说和鸡尾酒间的关系,大概就是想喝到鸡尾酒(得到排序好的队列)就要摇晃酒杯让不同的成分混合均匀(向两个方向冒泡排序) 原理 鸡尾酒排序(Cocktail Sor ...
- 数据结构------选择排序
数据结构------选择排序 原理:参考趣学数据结构 代码: #include<stdio.h> #include<stdlib.h> void simpleSelectSor ...
- 数据结构-王道-排序
排序 关于排序算法的视频演示 直接插入排序 从上面的插入排序思想中,不难得到一种简单直接的插入排序算法.假设待排序表在某次过程中属于这种情况. |有序序列\(L[1\ldots i-1]\)|L(i) ...
- 希尔排序python 简书_数据结构_排序_直接插入+希尔排序
数据结构_排序_直接插入排序+希尔排序 其实主要是为了讲述希尔排序,不过插入排序是希尔排序的基础,因此先来讲直接插入排序. 一.直接插入排序 1.原理 下标 0 1 2 3 4 5 6 7 8 -- ...
- 常用数据结构以及数据结构的排序算法
2019独角兽企业重金招聘Python工程师标准>>> 数组 (Array) 在程序设计中,为了处理方便, 把具有相同类型的若干 变量按有序的形式组织起来.这些按序排列的同类数据元素 ...
- 【数据结构(C语言)】数据结构-内部排序
内部排序 文章目录 内部排序 一.概述 (1)排序定义 (2)稳定性 (3)内部排序和外部排序 (4)两种基本操作 (5)数据类型定义 二.分类 (1)插入排序 (2)交换排序 (3)选择排序 (4) ...
最新文章
- 中国矿业大学计算机考研复试科目,中国矿业大学复试科目
- vue如何输出一个值_怎么在控制台打印出来data里想要的数据? Vue
- DeepFashion︱衣物时尚元素关键点定位+时尚元素对齐技术
- python词云改颜色_使用Python创建一个与图像颜色匹配的词云
- AI:2020年6月23日北京智源大会演讲分享之AI交通专题论坛——11:05-11:35杜博文教授《基于广义时空数据挖掘的交通复杂行为认知-从研究到工业》
- 电脑pdf阅读器哪个好用_电脑免费录屏软件哪个好用?这两个录屏方法千万别错过...
- efcore根据多个条件更新_EFCore.Sharding(EFCore开源分表框架)
- Equipment upload - ERP ACK
- oracle 磁盘不分区吗,LINUX停ORACLE软件、数据文件等所在的磁盘分区空间不足的解决思路...
- 使用.net Stopwatch class 来分析你的代码
- 模板模式(部分方法延迟到子类实现)
- 首款搭载鸿蒙os的设备,华为发布会配件汇总,首款搭载 鸿蒙OS 的设备来了
- 系统架构设计师含金量_软考高级系统架构设计师如何备考?
- python对象之间的关系
- Atitit 爬虫 node版 attilax
- 加速与缓存技术之Varnish
- 科技资讯杂志 科技资讯杂志社科技资讯编辑部2022年第17期目录
- 小程序嵌套h5页面_小程序内嵌H5的方法介绍
- Excel学习日记:L23-如何计算成绩排名
- css空心图形,css画空心箭头
热门文章
- .团队组建及项目启动
- HDOJ 1071 The area (纯数学题)
- flash player10.1 + FMS4中的p2p功能
- Windows Mobile 6.5.3 Developer Tool Kit
- 关于STM32使用RTC时复位后程序死在 RTC
- STM32F103mini教程通用定时器
- C++ Primer 5th笔记(chap 17 标准库特殊设施)控制输入格式
- Bech32编码 (3)隔离见证地址
- 百度超级链XChain(5)XuperBridge 智能合约接口
- 区块链BaaS云服务(21)腾讯CCGP”跨链事务“