排序算法
akieay
前进吧!如果你还没有放弃的话。
展开
-
基本排序算法--计数排序随笔
基本思想 计数排序是一个非基于比较的排序算法,该算法于1954年由 Harold H. Seward 提出。它的优势在于在对一定范围内的整数排序时,它的复杂度为Ο(n+k)(其中k是整数的范围),快于任何比较排序算法。 [1] 当然这是一种牺牲空间换取时间的做法,而且当O(k)>O(n*log(n))的时候其效率反而不如基于比较的排序;其核心在于将输入的数据值转化为键存储在额外开辟的数组空...原创 2020-01-07 01:07:12 · 83 阅读 · 0 评论 -
基本排序算法--快速排序随笔
基本思想 快速排序(Quicksort)是对冒泡排序的一种改进。 快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。 例如: 【1,5,4,3,7,10,8,2,9, 6】–(轴...原创 2020-01-07 00:59:34 · 94 阅读 · 0 评论 -
基本排序算法--归并排序随笔
基本思想 归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer)策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。 总的来说,是先将数组拆分,再合并;每次拆分,在原来的基础上,将数组拆分为两份,若可继续拆分;则继续拆分,直到无法拆分;...原创 2020-01-07 00:42:12 · 89 阅读 · 0 评论 -
基本排序算法--希尔排序随笔
基本思想 将整个序列按照相距某个“增量”进行拆分,然后逐个对子序列进行直接插入排序,使得得到的结果基本有序,最后对基本有序的序列进行一次直接插入排序,使得整个序列有序。 代码实现: /** * 希尔排序,间隔比较大的时候,排序次数比较少; * 间隔比较小的时候,移动距离比较短;由于跳着排,所以它不稳定 * * 首先给定一个间隔,按间隔选取元素,将选取好的元素排好序,如: * 【a0, a...原创 2020-01-06 23:45:06 · 131 阅读 · 0 评论 -
基本排序算法--选择排序随笔
简介 插入排序是一种简单直观且稳定的排序算法。如果有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部...原创 2019-12-18 23:54:11 · 137 阅读 · 0 评论 -
基本排序算法--冒泡排序随笔
简介 冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。 它重复地走访过要排序的元素列,依次比较两个相邻的元素,如果顺序(如从大到小、首字母从从Z到A)错误就把他们交换过来。走访元素的工作是重复地进行直到没有相邻元素需要交换,也就是说该元素列已经排序完成。 这个算法的名字由来是因为越小的元素会经由交换慢慢“浮”到数列的顶端(升序或降序排列),就如同碳酸饮料中二氧化碳的气...原创 2019-12-18 23:41:58 · 426 阅读 · 0 评论 -
基本排序算法--插入排序随笔
简介 插入排序是一种简单直观且稳定的排序算法。如果有一个已经有序的数据序列,要求在这个已经排好的数据序列中插入一个数,但要求插入后此数据序列仍然有序,这个时候就要用到一种新的排序方法——插入排序法,插入排序的基本操作就是将一个数据插入到已经排好序的有序数据中,从而得到一个新的、个数加一的有序数据,算法适用于少量数据的排序,时间复杂度为O(n^2)。是稳定的排序方法。插入算法把要排序的数组分成两部...原创 2019-12-18 17:25:32 · 114 阅读 · 0 评论