排序算法总是分不清,借了本数据结构来专门看了一下说一下分类,主要有五类,插入排序,交换排序,选择排序,基数排序和归并排序今天中午看了一下插入排序中的直接插入排序,交换排序的冒泡排序,选择排序中的冒泡排序1.插入排序将数组分成两个部分,一个是有序,一个是无序。将无序的每个元素插入到有序中,一共需要n ...
分类:
编程语言 时间:
2014-11-04 19:34:42
阅读次数:
336
技巧一:对无重复的数据集排序
对于给定的数据集,(2,4,1,12,9,7,6)如何对它排序?
第一种方式、使用最基本的冒泡,快排、基数排序等,最小时间复杂度 0(nlogn)。
第二种方式、使用位数组排序算法。
对于数据集排序,相信大多数都会在第一时间便能想起来,而对于方法二,就需要一定的思考了。...
分类:
编程语言 时间:
2014-10-28 00:52:23
阅读次数:
302
今天发现...比较流行的后缀数组模板里的排序居然不是“基数排序”,而是“计数排序”....难怪我理解了那么久的代码还是理解不到...原来一开始的思想就没对...想了一下,原来后缀数组模板里的确实是“基数排序”,只不过对每一位排序的实现它用的是“计数排序”,而不是我一直所想的桶排。怎么没人说说这几个排...
分类:
编程语言 时间:
2014-10-25 20:03:07
阅读次数:
178
各种排序算法:冒择路(入)兮(稀)快归堆,桶式排序,基数排序冒泡排序,选择排序,插入排序,稀尔排序,快速排序,归并排序,堆排序,桶式排序,基数排序一、冒泡排序(BubbleSort)1. 基本思想: 两两比较待排序数据元素的大小,发现两个数据元素的次序相反时即进行交换,直到没有反序的数据元素为止。....
分类:
编程语言 时间:
2014-10-23 14:17:55
阅读次数:
201
下面列出了数据结构与算法的八种基本排序:插入排序 冒泡排序 选择排序 快速排序 堆排序 归并排序 基数排序 希尔排序,然后是测试的例子...
分类:
编程语言 时间:
2014-10-15 14:44:30
阅读次数:
235
各算法的时间复杂度 平均时间复杂度 插入排序 O(n^2) 冒泡排序 O(n^2) 选择排序 O(n^2) 快速排序 O(n log n) 堆排序 O(n log n) 归并排序 O(n log n) 基数排序 O(n) 希尔排序 O(n^1.25)1 快速排序(QuickSort)快速排序是一个就...
分类:
编程语言 时间:
2014-10-11 21:51:36
阅读次数:
222
基数排序(Radix sort)是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。由于整数也可以表达字符串(比如名字或日期)和特定格式的浮点数,所以基数排序也不是只能使用于整数。基数排序的发明可以追溯到1887年赫尔曼·何乐礼在打孔卡片制表机(Tabulati...
分类:
编程语言 时间:
2014-10-11 01:46:35
阅读次数:
718
以POJ 1743为例。模板中的基数排序基于前向星。
具体证明过程详见 算法合集之《后缀数组——处理字符串的有力工具》,很不错的一篇论文。
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#pragma comment(l...
分类:
编程语言 时间:
2014-10-10 17:59:34
阅读次数:
227
下面这段问答摘自csdn:把基数排序说成桶排序应该是没有太大问题的。总的说来,应该把这一类归为分配排序,由于分配排序的一些缺陷,主要是时间代价很差,改进成为桶式排序(bucket sort),而桶排序的基本思路是将较少的纪录分配到每个桶,然后用较快的“收尾排序”来对每桶中的纪录进行排序。在此基础上,...
分类:
其他好文 时间:
2014-10-09 23:47:57
阅读次数:
336
编程论到极致,核心非代码,即思想。所以,真正的编程高手同时是思想独到及富有智慧(注意与聪明区别)的人。每一个算法都是一种智慧的凝聚或萃取,值得我们学习从而提高自己,开拓思路,更重要的是转换思维角度。其实,我们大多数人都活在“默认状态”下。没有发觉自己的独特可设置选项-----思想。言归正传(呵呵!恢...
分类:
其他好文 时间:
2014-10-02 12:52:32
阅读次数:
289