1万个元素的数组,90%的元素都是1到100的数,10%的元素是101--10000的数,如何高效排序。
2017-01-14 12:02
344 查看
#define RANGE 10000 int* sort(int* arr, int len) { int* hashtable = new int[len]; memset(hashtable, 0, sizeof(int) * len); for (int i = 0; i < len; ++i) { hashtable[arr[i]]++; } return hashtable; } void printArrayFromHashTable(int* hash, int len) { for (int i = 0; i < len; ++i) { if (hash[i]) { for (int j = 0; j < hash[i]; ++j) { cout << i << ' '; } cout << endl; } } }
相关文章推荐
- 1万个元素的数组,90%的元素都是1到100的数,10%的元素是101--10000的数,如何高效排序。
- 微软算法100题14 在排序数组中找到和为指定数的任意两个元素
- 面试题: 随机生成1-100的100个元素的数组,并按最快的排序算法排序,并打印出来
- java中如何高效的判断数组中是否包含某个元素---
- 在Java中如何高效判断数组中是否包含某个元素
- 在Java中如何高效的判断数组中是否包含某个元素
- 在Java中如何高效的判断数组中是否包含某个元素
- 在Java中如何高效的判断数组中是否包含某个元素
- 如何高效地抽离出两个数组中的相同元素
- 不使用循环,如何创建一个长度为100的数组,并且数组的每一个元素是该元素的下标?
- 在Java中如何高效判断数组中是否包含某个元素
- 在Java中如何高效判断数组中是否包含某个元素
- 在Java中如何高效的判断数组中是否包含某个元素
- 在Java中如何高效判断数组中是否包含某个元素
- 如何在一个相邻元素差的绝对都是1的数组中快速查找一个数?
- 如何高效地抽离出两个数组中的相同元素
- 在Java中如何高效判断数组中是否包含某个元素
- 在Java中如何高效的判断数组中是否包含某个元素
- 定义一个一维数组,其元素个数从键盘中输入,元素的值为[100,200]的随机整数。 (1)输出数组的每个数 (2)对数组的数进行升序排序,输出排序后的数组元素 (3)从键盘上输入一个整数,查找该整数是
- Jvva中如何高效判断数组中是否含有某个元素