![](https://img-blog.csdnimg.cn/20201014180756930.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
排序算法
qiki_tang
不积硅步无以至千里,突破自己,糖没味儿加油!
展开
-
希尔排序
希尔排序一、基本思想设置单位间隔:d = n/3 + 1 (n为数组长度)从数组后位往前推:刚开始,若后者behind的值小于前者forward的值,则将后者behind的值放到“哨兵”处作为标称,此后,从前者forward开始,往前以间隔d为单位进行前溯:1)若前者behind的值存在且前者的值大于“哨兵”,则将前者的值以d为单位往后挪;2)若前者behin原创 2017-11-03 10:29:49 · 365 阅读 · 0 评论 -
直接选择排序
直接选择排序一、基本思想:通过n-1次关键字比较,从n-i-1个记录中选出最小的关键字,当这个最小关键字不在i位置时,和第i个位置的关键字记录交换。二、算法复杂度分析1、从交换移动次数分析:1)当最好的情况,交换移动次数为0;2)当最坏的情况,也就是初始降序,交换移动次数为(n-1)次。2、从比较次数分析 比较次数为:1+2+3+...+(n-1) =原创 2017-11-03 10:17:28 · 476 阅读 · 1 评论 -
直接插入排序
直接插入排序一、基本思想将一个记录插入到已经排好序的有序表中,从而得到一个新的,记录增1的表。二、时间复杂度为O(n^2),但是它总的性能比冒泡排序和简单选择排序好一些。三、代码实现/**************************************************************************************原创 2017-11-03 10:22:52 · 170 阅读 · 0 评论 -
冒泡排序
冒泡排序一、基本思想:两两比较相邻记录的关键字,如果反序即交换,直到没有反序的记录为止;二、复杂度分析:1)当最好的情况:即要排序的表本身就是有序的,根据以下冒泡排序代码,会进行(n-1)次比较,没有数据交换,时间复杂度为O(n);2)当最坏的情况,即要排序的表是逆序的,会进行(n-1)+(n-2)+...+3+2+1 = n*(n-1)/2次比较和n*(n-1原创 2017-11-03 10:08:13 · 211 阅读 · 0 评论 -
堆排序
堆排序一、堆的性质:堆是一个完全二叉树1)若它的每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆2)若它的每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆因此,在堆的定义中可以发现:根结点的值一定是堆中所有结点的最大(最小)值二、堆排序算法(以大顶堆为例)基本思想:1)将待排序的n个元素的序列构造成一个大顶堆。此时序列的最大值就是根结点的值;2)将根...原创 2017-11-04 12:50:48 · 296 阅读 · 0 评论 -
C语言快速排序算法及三种优化方式
C语言快速排序算法及三种优化方式 C语言快速排序算法及三种优化方式 原理快速排序复杂度分析1 时间复杂度2 空间复杂度快速排序代码实现1 普通快速排序2 快速排序优化1-三数取中优化不必要的交换3 快速排序优化2-优化递归操作4 快速排序优化3-优化小数组时的排序方案1. 原理 快速排序的基本思想就是从一个数组中任意挑选一个元素(通常来说会选择最左边的元素)作为中轴元素,将剩下原创 2017-11-05 20:32:25 · 7309 阅读 · 2 评论 -
【归并排序】--递归与非递归实现
一、2路--归并排序原理: 假设初始序列含有n个元素,则可看成以各个元素为单位是n个有序子序列,每个子序列长度为1,然后两两归并,n个有序子序列就变成了n/2个有序子序列,再两两归并,...,如此重复,直到得到一个长度为n的有序序列为止。二、归并排序的两种实现形式:递归实现和非递归实现三、复杂度递归实现复杂度:时间复杂度为O(nlogn) ...原创 2018-03-11 19:33:11 · 4269 阅读 · 0 评论 -
8-使用辅助内存的排序-O(n)
一、题目描述实现一个排序算法,要求时间复杂度为O(n)。情景:公司共有几万名员工,想对公司所有员工的年龄(数字范围较小0-99)排序,可以使用常量大小的辅助空间,不得超过O(n)二、解题思路1)申请一个长度为100的数组timesofAges[100]--初始值赋0,用于记录在年龄ages数组中该年龄出现的次数:timesofAges[age]=times--(键是年龄,存储的时候就是从小到大,值...原创 2018-06-29 10:23:32 · 373 阅读 · 0 评论 -
字典序排序
一、题目描述给1000个人名字符串,如:raina tina anne....将这些人名按字典顺序排序二、解题思路字典顺序就是按a b c d顺序,对字符串排列,可以直接用strcmp实现三、解题算法/*****************************************author:tmwdate:2018-8-26********************...原创 2018-08-26 12:53:29 · 627 阅读 · 0 评论