前m大的数
Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 13743 Accepted Submission(s): 4683
Problem Description
还记得Gardon给小希布置的那个作业么?(上次比赛的10...
分类:
编程语言 时间:
2015-08-07 11:17:38
阅读次数:
239
参考《21天学通C++》第23与第24章节,对STL算法与自适应容器进行介绍。
实际上在前面的STL顺序容器、关联容器进行介绍时或多或少引用到了一些STL算法中的模板函数。而自适应容器是在顺序容器的基础上按照stack、queue的性质进行定制实现的。所以,本篇博文将言简意赅地总结出需要掌握的纲要。
一、STL算法
查找、搜索、删除、计数、排序等都是一些通用算法,STL通过模板函数提供了这些...
分类:
编程语言 时间:
2015-08-06 15:11:40
阅读次数:
186
计数排序是稳定排序,而且是线性时间内的排序算法,时间复杂度是O(n + k)其中k是待排序数组的范围。计数排序不是原址排序,空间复杂度是O(n + k)
//k是指A中的数组范围是0~k 包括0和k
void count_sort(int A[], int B[], int n, int k)
{
int *C = (int *)malloc(sizeof(int) * ...
分类:
编程语言 时间:
2015-08-04 00:39:31
阅读次数:
131
排序分内排序和外排序。内排序:指在排序期间数据对象全部存放在内存的排序。外排序:指在排序期间全部对象个数太多,不能同时存放在内存,必须根据排序过程的要求,不断在内、外存之间移动的排序。内排序的方法有许多种,按所用策略不同,可归纳为五类:插入排序、选择排序、交换排序、归并排序、分配排序和计数排序。插入排序主要包括直接插入排序,折半插入排序和希尔排序两种;选择排序主要包括直接选择排序和堆排序;交换排序...
分类:
编程语言 时间:
2015-08-03 22:53:18
阅读次数:
251
这里对笔试面试最常涉及到的12种排序算法(包括插入排序、二分插入排序、希尔排序、选择排序、冒泡排序、鸡尾酒排序、快速排序、堆排序、归并排序、桶排序、计数排序和基数排序)进行了详解。每一种算法都有基本介绍、算法原理分析、图解/flash演示/视频演示、算法代码、笔试面试重点分析、笔试面试题等板块。
一、插入排序
1)算法简介
插入排序(Insertion Sort)的算法...
分类:
编程语言 时间:
2015-08-02 23:27:29
阅读次数:
289
计数排序假设n个输入元素中的每一个都是介于0到k之间的整数。其基本思想就是对每个输入元素x,确定小于x的元素个数。有了这一信息,就可以把x直接放到它在最终输出数组中的位置上。 1 #include 2 void countsort(int *A,int *B,int n,int k) 3 { 4.....
分类:
编程语言 时间:
2015-08-02 11:35:47
阅读次数:
126
计数排序
计数排序假设n个输入元素中的每一个都是介于0到k之间的整数。此处k为某个整数(输入数据在一个小范围内)。
算法思想
计数排序的基本思想是对每一个输入元素x,确定出小于x的元素的个数。然后再将x直接放置在它在最终输出数组中的位置上。
由于数组中可能有相等的数,在处理时需要注意。
时间复杂度和空间复杂度分析
算法总时间Θ(k + n)。当k=O(n)时,计数排序的...
分类:
编程语言 时间:
2015-08-01 23:35:40
阅读次数:
151
一.概念引入有作者把计数排序也称为桶排序(各个桶中元素的排序采用计数排序),得到数组C后直接从前往后遍历,输出数组值次数组下标,为0就不输出(或者存入原数组,不稳定),不过笔者认为这种说法不严谨(一个很明显的问题是输出会是双重for循环,不过也有那个意思,叫鸽巢排序也未尝不可),因为桶排序要求输入数据在[0,1)范围内(计数排序要求整数;实际上要么全是整数,要么小数,便于划分桶)...
分类:
编程语言 时间:
2015-07-31 16:18:24
阅读次数:
106
E. A Simple Task
time limit per test
5 seconds
memory limit per test
512 megabytes
input
standard input
output
standard output
This task is very simple. Given a string S...
分类:
编程语言 时间:
2015-07-26 15:50:39
阅读次数:
185
基数排序
计数排序
桶排序基数排序,桶排序,计数排序是三种线性排序方法,突破了比较排序的O(nlogn)的限制。但是只适用于特定的情况。基数排序以下为维基百科的描述:
基数排序 :
将所有待比较数值(正整数)统一为同样的数位长度,数位较短的数前面补零。然后,从最低位开始,依次进行一次排序。这样从最低位排序一直到最高位排序完成以后,数列就变成一个有序序列。
基数排序的方式可以采用L...
分类:
编程语言 时间:
2015-07-20 13:01:28
阅读次数:
164