编程珠玑之第一章习题5:k趟算法给1000w数据排序的测试用例
来源:互联网 发布:网络舆情试题 编辑:程序博客网 时间:2024/06/05 01:29
习题5中为了能够实现在严格的1MB空间内给数据排序,可以使用k趟算法进行排序。每一趟一个区间,k趟我们可以给1000w整数划分k个区间,在这k个区间内分别进行排序,依照这个思路,我写了一个简单的测试用例,如下:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <stdio.h>
#include <stdlib.h>
#include <string.h> /*memset*/
#define MAxNUM 100 // 最大值
#define COUNT 11 // 排序次数
typedef struct{ unsigned int bit:1; } bitType; // 占1位
int main(void)
{
bitType arr[1 + MAxNUM/COUNT];
memset(arr, 0, sizeof(arr)); // 清零
int base;
if (MAxNUM%COUNT == 0)
base = MAxNUM/COUNT;
else
base = MAxNUM/COUNT + 1;
int a[10] = {23, 3, 67, 0, 8,
87, 5, 56, 6, 13};
for (int i = 1; i <= COUNT; i++)
{
for(int j=0; j < 10; j++)
{
if (a[j] >= base*(i-1) && a[j] < base*i)
{
arr[a[j]-base*(i-1)].bit = 1;
}
}
for(int k=0; k < (MAxNUM/COUNT + 1); k++)
{
if (arr[k].bit == 1)
printf("%d\t", k+base*(i-1));
}
memset(arr, 0, sizeof(arr)); // 清零
}
return 0;
}
#include <stdlib.h>
#include <string.h> /*memset*/
#define MAxNUM 100 // 最大值
#define COUNT 11 // 排序次数
typedef struct{ unsigned int bit:1; } bitType; // 占1位
int main(void)
{
bitType arr[1 + MAxNUM/COUNT];
memset(arr, 0, sizeof(arr)); // 清零
int base;
if (MAxNUM%COUNT == 0)
base = MAxNUM/COUNT;
else
base = MAxNUM/COUNT + 1;
int a[10] = {23, 3, 67, 0, 8,
87, 5, 56, 6, 13};
for (int i = 1; i <= COUNT; i++)
{
for(int j=0; j < 10; j++)
{
if (a[j] >= base*(i-1) && a[j] < base*i)
{
arr[a[j]-base*(i-1)].bit = 1;
}
}
for(int k=0; k < (MAxNUM/COUNT + 1); k++)
{
if (arr[k].bit == 1)
printf("%d\t", k+base*(i-1));
}
memset(arr, 0, sizeof(arr)); // 清零
}
return 0;
}
- 编程珠玑之第一章习题5:k趟算法给1000w数据排序的测试用例
- 编程珠玑之第一章习题6给每个整数不超过10次的100w数据排序的测试用例
- 编程珠玑之第一章习题5:两趟算法完成100w数据排序
- 编程珠玑之第一章习题3:度量100w整数排序的运行时间
- 编程珠玑之第一章习题8:包含区号800、877,888情况下的排序测试用例
- 编程珠玑之第一章习题7:处理程序存在的缺陷的问答与测试
- 编程珠玑第一章习题
- 编程珠玑之第一章:开篇(习题)泛览
- 编程珠玑 第一章 大数据排序
- 编程珠玑 第一章 习题9
- 编程珠玑 第一章习题1
- 编程珠玑 第一章习题解答
- 编程珠玑 第一章 习题解答
- 编程珠玑 第一章习题解答
- 编程珠玑第一章习题9
- 编程珠玑第一章课后习题
- 编程珠玑第一章习题解答
- 编程珠玑(开篇)--第一章习题
- Convert Sorted List to Binary Search Tree (递增的链表转化成高度平衡的二叉查找树)【leetcode】
- 排序算法实现
- Android工程改名出现错误
- SpringMVC注解入门(一)
- 数据库事务嵌套
- 编程珠玑之第一章习题5:k趟算法给1000w数据排序的测试用例
- 【转载】【leetcode】Longest Substring Without Repeating Characters
- 动态规划之最长子序列和最长子串
- Java案例
- 解决库链接时的相互依赖
- VS2008中CDockablePane停靠框
- 猜数字游戏的实现
- 如何解决"应用程序无法启动,因为应用程序的并行配置不正确"问题
- 为 android的系统控件添加属性