![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序算法
丶坏孩子
自闭少年
展开
-
新手笔记之希尔排序
简介: 希尔排序是插入排序的一种,又称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因希尔(Donald Shell)与1959年提出而得名。 希尔排序是基于插入排序的两点性质而提出改进方法的: 插入排序在对几乎已经排好序的的数据进行操作时,效率高,即可以达到线性排序的效率。 但插入排序一般来说是低效的,因为插入排序每次只能将数据移动一位。 希尔排序为了加快插入的速度,让数据移动时可以实现跳跃移动,节省了一部分时间开支。 希尔排序是把数列按下标..原创 2021-06-15 20:06:48 · 82 阅读 · 0 评论 -
新手笔记之快速排序
简介: 快速排序是由东尼·霍尔所发展的一种排序算法。 在平均状态下,排序n个项目要O(nlogn)次比较,在最坏的状态下则需要O(n²)次比较,但这种情况并不常见。 事实上,快速排序通常明显比其他O(nlogn)算法更快,因为它的内部循环(inner loop)可以在大部分架构上很有效率的被实现出来。 快速排序使用分治法策略来吧一个串行分为两个子串行,通俗来讲就是把一个数列变成了两个数列。 快速排序又是一种分而治之思想在排序算法上的典型应用,从本质上来看,快速排序应该算是在冒泡排序基础上的递归分治法 ..原创 2021-06-15 16:08:07 · 105 阅读 · 0 评论 -
新手笔记之选择排序
概念: 选择排序是一种简单直观的排序算法,它的工作原理是:第一次从待排序的列表中选择一个最小(最大)的元素,放在列表的起始位置,然后再从剩下的未排序的元素中寻找最小(最大)元素,放到已排序序列的末尾。以此类推,直到待排序的元素为零。选择排序是不稳定的排序方法。 关于稳定性,因为选择排序是给每个位置选择当前元素最小的,比如给第一个位置选择最小的,在剩余元素里面给第二个元素选择第二小的,依次类推,直到第n-1个元素,第n个元素不用选择了,因为只剩下它一个最大的元素了。那么,在一趟选择,如果一个元素比当..原创 2021-05-29 10:02:47 · 181 阅读 · 0 评论 -
新手笔记之插入排序
概念 插入排序,一般也被称为直接插入排序。对于少量元素的排序,它是一个有效的算法 。插入排序是一种最简单的排序方法,它的基本思想是将一个记录插入到已经排好序的有序表中,从而一个新的、记录数增1的有序表。在其实现过程使用双层循环,外层循环对除了第一个元素之外的所有元素,内层循环对当前元素前面有序表进行待插入位置查找,并进行移动 插入排序的工作方式就像是打扑克牌一样,从牌堆中抽出牌,然后插入左手的合适位置,如果是不排直接抽完所有的牌的话,那就把牌往右边挪一挪,把左边空出一点位置,把牌按顺序插入到左边去..原创 2021-05-25 19:42:33 · 72 阅读 · 0 评论 -
新手笔记之冒泡排序
算法简介 冒泡排序是一种较简单并直观的排序算法,它重复的比较相邻的两个元素的大小(从大到小或从小到大),如果顺序错误就交换它们的位置,直到没有相邻的元素需要交换,也就是已排序完成。 这个算法的名字就是因为越小(大)的元素会由于交换慢慢的来到数列的顶端,就像水里的气泡一样浮上来,所以叫冒泡排序。 时间复杂度:O(n^2) 算法稳定性:稳定排序算法 算法步骤 比较相邻的两个元素,如果第一个比第二个大,就交换它们的位置。 对每一对相邻的元素做同样的事,从开始的一对到最后的一对,交换完..原创 2021-05-08 13:43:40 · 60 阅读 · 0 评论