十大排序方法
了
Clusm
这个作者很懒,什么都没留下…
展开
-
十大排序算法总结
全文转载自:https://blog.csdn.net/weixin_41190227/article/details/866008210、排序算法说明0.1 排序的定义 对一序列对象根据某个关键字进行排序。0.2 术语说明 稳定 :如果a原本在b前面,而a=b,排序之后a仍然在b的前面; 不稳定 :如果a原本在b的前面,而a=b,排序之后a可能会出现在b的后面; 内排序 :所有排序操作都...转载 2020-02-28 13:47:44 · 307 阅读 · 0 评论 -
堆排序
一开始感觉这个最难所以放到最后来写。堆排序In computer science, heapsort is a comparison-based sorting algorithm.Heapsort can be thought of as an improved selection sort: likeselection sort, heapsort divides its input...原创 2020-02-27 14:47:34 · 406 阅读 · 0 评论 -
计数排序
1.计数排序的定义和原理计数排序(Counting sort)是一种稳定的线性时间排序算法。该算法于1954年由 Harold H. Seward 提出。计数排序使用一个额外的数组C ,其中第i个元素是待排序数组A中值等于i的元素的个数。然后根据数组 C 来将A中的元素排到正确的位置。如图所示:贴代码head.h#ifndef HEAD_H#define HEAD_H#includ...原创 2020-02-18 19:56:31 · 192 阅读 · 0 评论 -
桶排序
桶排序桶排序 (Bucketsort)或所谓的箱排序,是一个排序算法,工作的原理是将数组分到有限数量的桶子里。每个桶子再个别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序)。桶排序是鸽巢排序的一种归纳结果。当要被排序的数组内的数值是均匀分配的时候,桶排序使用线性时间(Θ(n))。但桶排序并不是 比较排序,他不受到 O(n log n) 下限的影响。算法步骤1.设置固定...原创 2020-02-14 18:03:46 · 161 阅读 · 0 评论 -
基数排序
基数排序基数排序(英语:Radix sort)是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。由于整数也可以表达字符串(比如名字或日期)和特定格式的浮点数,所以基数排序也不是只能使用于整数。基数排序的发明可以追溯到1887年赫尔曼·何乐礼在打孔卡片制表机方法与原理1.实现方法最高位优先(Most Significant Digitfirst)法...原创 2020-02-13 20:10:47 · 200 阅读 · 0 评论 -
快速排序
快速排序快速排序(Quicksort)是对冒泡排序的一种改进。快速排序由C. A. R. Hoare在1960年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。步骤为:1.挑选基准值:从数列中挑出一个元素,称为“基准...原创 2020-02-12 19:57:01 · 149 阅读 · 0 评论 -
归并排序
归并排序归并排序(英语:Merge sort,或mergesort),是创建在归并操作上的一种有效的排序算法。1945年由约翰·冯·诺伊曼首次提出。该算法是采用分治法(Divide and Conquer)的一个非常典型的应用,且各层分治递归可以同时进行。为了不重复造轮子。归并原理参考:https://blog.csdn.net/csdn_blog_lcl/article/details/...原创 2020-02-11 18:11:22 · 148 阅读 · 0 评论 -
插入排序与希尔排序详解
插入排序插入排序(Insertion sort)是一种简单直观且稳定的排序算法。有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。...原创 2020-02-08 16:16:04 · 255 阅读 · 0 评论 -
选择排序详解
选择排序选择排序(Selection sort)是一种简单直观的排序算法。工作原理每一次从待排序的数据元素中选出最小(或最大)的一个元素,存放在序列的起始位置,然后,再从剩余未排序元素中继续寻找最小(大)元素,然后放到已排序序列的末尾。以此类推,直到全部待排序的数据元素排完。head.h#ifndef HEAD_H#define HEAD_H#include<iostream&...原创 2020-02-07 21:53:02 · 239 阅读 · 0 评论 -
冒泡排序
冒泡排序(Bubble Sort)时间复杂度O(n²)冒泡排序算法的原理如下:1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。2…对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。3.针对所有的元素重复以上的步骤,除了最后一个。4.持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较。head.h#ifnde...原创 2020-02-07 16:06:34 · 112 阅读 · 0 评论