视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
香皂可不可以洗澡 icloud空间不足如何清理 吃酵素对身体有害吗 QQ音乐如何能取消自动续费 如何清除苹果中的通讯录 excel表格怎么把图片自动适应大小 电脑时间不能自动更新该咋进行解决 王者荣耀亲密关系怎么隐藏教学 要如何才可以退订移动业务 qq群群主怎么踢人 怎么用快捷键关闭当前窗口 电脑ip要怎么手动修改 微信怎么查看自动续费 苹果手机怎么样进行关机 支付宝解除实名认证的步骤 淘宝如何发视频 微信如何绑定他人银行卡 什么叫冷敷凝胶牙膏 要如何才可以设置电脑锁屏 ppt中的背景填充效果怎么设置 word文档怎么建立目录链接 几点到几点算是熬夜 抖音音乐能怎么导出来 word文档怎么删除多余的空格 ca证书网络受到监控怎样才能删除 电脑怎么设锁屏快捷键 cdr怎么标注尺寸 ipad首次充电充多久 excel对数函数如何输入 word怎么设置每页都有标题 在电脑上艾特可以如何打出来 WiFi总是断断续续的掉线是什么问题 可以如何设置苹果手机夜间模式 电脑平方米符号要咋打出m2 win10软件图标怎么改 PPT中动画效果该怎样设置 ai里面怎么做阴影 微信加群怎么加 天眼查怎样查个人信用 苹果手机的铃声在哪设置
八大排序算法
2022-08-04 18:29:43 责编:小采
文档

排序算法是《数据结构与算法》中最基本的算法之一。

排序算法可以分为内部排序和外部排序,内部排序是数据记录在内存中进行排序,而外部排序是因排序的数据很大,一次不能容纳全部的排序记录,在排序过程中需要访问外存。常见的内部排序算法有:插入排序、希尔排序、选择排序、冒泡排序、归并排序、快速排序、堆排序、基数排序等。用一张图概括:

点击以下图片查看大图:

关于时间复杂度

平方阶 (O(n2)) 排序 各类简单排序:直接插入、直接选择和冒泡排序。

线性对数阶 (O(nlog2n)) 排序 快速排序、堆排序和归并排序;

O(n1+§)) 排序,§ 是介于 0 和 1 之间的常数。 希尔排序

线性阶 (O(n)) 排序 基数排序,此外还有桶、箱排序。

关于稳定性

稳定的排序算法:冒泡排序、插入排序、归并排序和基数排序。

不是稳定的排序算法:选择排序、快速排序、希尔排序、堆排序。

名词解释:

  • n:数据规模
  • k:"桶"的个数
  • In-place:占用常数内存,不占用额外内存
  • Out-place:占用额外内存
  • 稳定性:排序后 2 个相等键值的顺序和排序之前它们的顺序相同
    • 包含以下内容:

      排序算法包含的相关内容具体如下:

      冒泡排序算法

      冒泡排序(Bubble Sort)也是一种简单直观的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端。

      选择排序算法

      选择排序是一种简单直观的排序算法,无论什么数据进去都是 O(n?) 的时间复杂度。所以用到它的时候,数据规模越小越好。唯一的好处可能就是不占用额外的内存空间。

      插入排序算法

      插入排序的代码实现虽然没有冒泡排序和选择排序那么简单粗暴,但它的原理应该是最容易理解的了,因为只要打过扑克牌的人都应该能够秒懂。插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。

      希尔排序算法

      希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。但希尔排序是非稳定排序算法。

      归并排序算法

      归并排序(Merge sort)是建立在归并操作上的一种有效的排序算法。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。

      快速排序算法

      快速排序是由东尼·霍尔所发展的一种排序算法。在平均状况下,排序 n 个项目要 Ο(nlogn) 次比较。在最坏状况下则需要 Ο(n2) 次比较,但这种状况并不常见。事实上,快速排序通常明显比其他 Ο(nlogn) 算法更快,因为它的内部循环(inner loop)可以在大部分的架构上很有效率地被实现出来。

      堆排序算法

      堆排序(Heapsort)是指利用堆这种数据结构所设计的一种排序算法。堆积是一个近似完全二叉树的结构,并同时满足堆积的性质:即子结点的键值或索引总是小于(或者大于)它的父节点。堆排序可以说是一种利用堆的概念来排序的选择排序。

      计数排序算法

      计数排序的核心在于将输入的数据值转化为键存储在额外开辟的数组空间中。作为一种线性时间复杂度的排序,计数排序要求输入的数据必须是有确定范围的整数。

      桶排序算法

      桶排序是计数排序的升级版。它利用了函数的映射关系,高效与否的关键就在于这个映射函数的确定。

      基数排序算法

      基数排序是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。由于整数也可以表达字符串(比如名字或日期)和特定格式的浮点数,所以基数排序也不是只能使用于整数。

      下载本文
显示全文
专题什么是化妆品什么是化妆品专题怎样选择祛斑化妆品怎样选择祛斑化妆品专题夏季如何正确保存化妆品夏季如何正确保存化妆品专题过期化妆品再利用过期化妆品再利用专题教育培训机构选址技巧教育培训机构选址技巧专题教育培训机构三大经营技巧教育培训机构三大经营技巧专题教育培训机构如何做网络推广教育培训机构如何做网络推广专题教育培训机构网络营销策略教育培训机构网络营销策略专题布艺家具巧利用布艺家具巧利用专题别致布艺家具装点小资柔情别致布艺家具装点小资柔情专题布艺家具保养使用方法布艺家具保养使用方法专题化妆品加工定义与模式及专业术语的介绍化妆品加工定义与模式及专业术语的介绍专题化妆品过敏反应分类与解决办法化妆品过敏反应分类与解决办法专题化妆品基础知识简述化妆品基础知识简述专题化妆品的选购误区化妆品的选购误区专题教你怎样辨别化妆品好坏的小窍门教你怎样辨别化妆品好坏的小窍门专题化妆品是什么时候出现的化妆品是什么时候出现的专题化妆品的发展历史化妆品的发展历史专题化妆品的分类(一)化妆品的分类(一)专题化妆品中中草药的作用化妆品中中草药的作用专题化妆品收纳盒有用吗化妆品收纳盒有用吗专题怎样选购一款好的化妆品收纳盒怎样选购一款好的化妆品收纳盒专题妇女怀孕后使用化妆品注意妇女怀孕后使用化妆品注意专题化妆品禁用语化妆品禁用语专题化妆品原料简介化妆品原料简介专题化妆品油质原料简介(一)化妆品油质原料简介(一)专题化妆品胶质原料简介化妆品胶质原料简介专题化妆品也有寿命化妆品也有寿命专题化妆品里的成分化妆品里的成分专题选购化妆品应该注意什么选购化妆品应该注意什么专题