#include #include int n; //元素个数 int bit_num; //最大数字位数 /* * 获取相应位置上的数(从右到左) */ int GetNumInPos(int num, int pos) { int i, temp = 1; for (i = 0; i = 0; ... ...
分类:
编程语言 时间:
2019-05-24 21:00:48
阅读次数:
127
计数排序: 1、一个非基于比较的排序算法,该算法于1954年由 Harold H. Seward 提出,它的优势在于在对一定范围内的整数排序, 其时间复杂度为Ο(n+k)(其中k是整数的范围),快于任何比较排序算法 2、步骤: a、找出给定整数序列的最大值 max 和最小值 min,创建大小为 ma ...
分类:
编程语言 时间:
2019-05-12 01:37:31
阅读次数:
157
任何比较排序算法的时间复杂度的上限为O(NlogN), 不存在比o(nlgN)更少的比较排序算法。如果想要在时间复杂度上超过O(NlogN)的时间复杂度,肯定需要加入其它条件。计数排序就加入了限制条件,从而使时间复杂度为O(N). 计数排序的核心思想(来自算法导论):计数排序要求待排序的n个元素的大 ...
分类:
编程语言 时间:
2019-05-11 19:40:00
阅读次数:
200
截止到上篇随笔,我们已经学完了c++中所有的基础语句,这意味着,noip普及组的第一题你已经可以拿满分了。为了纪念这个伟大的时刻,今天要上的这道题,是刚刚考完的海淀区区赛第一题。 这道题比较复杂,我当时大概花了半小时做这道题,稍后我会详细讲解。 今天我们终于可以进入算法部分。我们来讲讲一种非常实用的 ...
分类:
编程语言 时间:
2019-05-04 11:44:30
阅读次数:
163
【基本思想】 计数排序类似与桶排序,也是用空间换取了时间,计数排序要求数组必须在一个确定的区间内。 过程:1. 首先找出数组的最大值和最小值;2. 遍历数组,以数字作为键,该数字出现的次数作为值插入哈希表中;3. 在最小值到最大值这个区间内遍历哈希表,将数字反向插入数组中。 【算法复杂度】 计数排序 ...
分类:
编程语言 时间:
2019-05-03 18:21:08
阅读次数:
161
题目链接:http://codeforces.com/contest/558/problem/E E. A Simple Task time limit per test5 seconds memory limit per test512 megabytes inputstandard input ...
分类:
编程语言 时间:
2019-04-27 00:27:26
阅读次数:
151
思路: 桶排序 N个数,设置 N+ 1 个桶,,一定有一个空桶,,为的是保证最大差值一定是不是出现在同一个桶中; 只要比较 非空桶 的最小值,与前一个 非空桶的最大值,求 最大的差值, ...
分类:
编程语言 时间:
2019-04-24 00:14:23
阅读次数:
135
由于没考虑到一些情况,对以上一些算法做了改进和对比!以及昨晚把希尔排序写错而误以为其效率高过快速排序的糗事,今天一一做了更正和说明,如果你绝得本随笔不是很妥可以尝试看看这http://www.cnblogs.com/maxiaofang/p/3382927.html,有错误或不妥欢迎指正!!共同学习 ...
分类:
编程语言 时间:
2019-04-11 14:51:43
阅读次数:
167
原数组和桶如下: 第一次按照个位排序如下 取出的时候按照从0~9的顺序,且同一个桶中,先放进去的先出来 第二次按照十位排序如下 取出结果如下 第三次次按照百位排序如下 取出结果如下: 此时数组已经有序了 代码思路: 我们排序的次数取决于数组中最大是数字的位数 import java.util.Arr... ...
分类:
编程语言 时间:
2019-04-07 22:10:09
阅读次数:
225
排序算法可以说是一项基本功,解决实际问题中经常遇到,针对实际数据的特点选择合适的排序算法可以使程序获得更高的效率,有时候排序的稳定性还是实际问题中必须考虑的,这篇博客对常见的排序算法进行整理,包括:插入排序、选择排序、冒泡排序、快速排序、堆排序、归并排序、希尔排序、二叉树排序、计数排序、桶排序、基数 ...
分类:
编程语言 时间:
2019-04-06 17:10:00
阅读次数:
146