题目大意: 给你红,白,蓝三种颜色的数组,要求按照红、白、蓝的顺序排序,leetcode链接:https://leetcode.com/problems/sort-colors/ 思路1: 直接给整个数组排序,时间复杂度O(nlogn) 思路2: 计数排序方法,使用一个类似hash的数组纪录每种颜色
分类:
编程语言 时间:
2016-01-28 00:28:44
阅读次数:
255
时间复杂度为O(n^2)的排序算法:冒泡排序,选择排序,插入排序数组a[N]中进行冒泡排序冒泡排序: 假如数组为[3,7,4,6,8,9,1]-->[3,7,4,6,8,9,1]-->[3,4,7,6,8,9,1]....一直进行下去,相邻2个数进行比较。 1.第一轮:数组相邻2个元素相比较(a.....
分类:
编程语言 时间:
2015-12-28 20:17:15
阅读次数:
213
概述: 计数排序是一个非基于比较的排序算法,该算法于1954年由 Harold H. Seward 提出。它的优势在于在对一定范围内的集合排序时,它的复杂度为Ο(n+k)(其中k是元素的范围),快于任何比较排序算法。 计数排序本质上是通过计算无序集合中元素出现的次数来决定集合应该如何排序的。 例如一...
分类:
编程语言 时间:
2015-12-18 21:07:06
阅读次数:
298
在最坏情况下,任何比较排序算法都需要做O(nlgn)次比较。然而,在指定的条件下,线性时间的排序算法可以使得排序在O(n)时间内完成。计数排序 假设n个输入元素中的每一个都是0到k区间内的一个整数,其中k为某个整数。k=O(n)时,排序运行时间为O(n)。主要思想: 创建长度为k的数组C,将对应.....
分类:
编程语言 时间:
2015-12-15 01:01:37
阅读次数:
193
颜色分类给定一个包含红,白,蓝且长度为n的数组,将数组元素进行分类使相同颜色的元素相邻,并按照红、白、蓝的顺序进行排序。我们可以使用整数0,1和2分别代表红,白,蓝。样例注意不能使用代码库中的排序函数来解决这个问题说明一个相当直接的解决方案是使用计数排序扫描2遍的算法。首先,迭代数组计算0,1,2出...
分类:
其他好文 时间:
2015-12-07 14:07:50
阅读次数:
228
桶排序
桶排序(Bucket Sort)假设输入数据服从均匀分布,然后将输入数据均匀地分配到有限数量的桶中,然后对每个桶再分别排序,对每个桶再使用其他的排序算法,最后将每个桶中的数据有序的组合起来。前面了解到基数排序假设输入数据属于一个小区间内的整数,而桶排序则是假设输入是由一个随机过程生成,该过程将元素均匀的分布在一个区间[a,b]上。由于桶排序和计数排序一样均对输入的数据进行了某些假设限制,...
分类:
编程语言 时间:
2015-11-20 12:48:19
阅读次数:
339
计数排序
学习基数排序之前首先学习计数排序。
计数排序假设每个元素都是在0到k之间的一个整数。
基数排序的基本思想,对于每个元素x,如果我们知道了小于x的元素的个数,就可以确定输出数组中元素x的位置,那么直接将元素x放到输出数组中。比如有3小于x的元素,那在输出数组中,x肯定位于第4个位置。
计数排序的算法用伪代码描述为:
COUNTING-SORT(A,k)
// 初始化数组C
...
分类:
编程语言 时间:
2015-11-11 16:33:26
阅读次数:
336
第一部分基础知识 插入排序(增量式方法) 归并排序(递归技术)、分治法第二部分排序和顺序统计学 堆排序、堆(优先级队列) 快速排序 计数排序、基数排序、桶排序第三部分数据结构 栈、队列、链表 树 散列表 二叉查找树 红黑树第四部分高级设计和分析技术第五部分高级数据结构第六部分图算...
分类:
编程语言 时间:
2015-10-29 21:46:01
阅读次数:
192
package 数组;public class 计数排序 { public static void main(String[] args) { int[] num1={10,20,80,30,5,58,95}; int len=num1.length; int []num2=new int[...
分类:
编程语言 时间:
2015-10-10 20:01:24
阅读次数:
173
一、线性时间排序算法历史概览 计数排序首先是由 Harold H. Seward 于1954年提出,而且他还提出将计数排序和基数排序进行结合的思想;基数排序是L.J.Comrie于1929年首次在一篇描述卡片穿孔机文档中提出的一种方法,它是从最低有效位开始,对一个有多位数组成的数进行排序的方法;而桶...
分类:
编程语言 时间:
2015-09-29 14:29:24
阅读次数:
374