From 0de853d851d68c57689c44812447d20b83ab5caa Mon Sep 17 00:00:00 2001 From: Bobby Bingham Date: Sun, 29 Jun 2014 12:06:36 -0500 Subject: Add generator of mostly sorted data --- generators.c | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) (limited to 'generators.c') diff --git a/generators.c b/generators.c index c4a70a0..2e31b72 100644 --- a/generators.c +++ b/generators.c @@ -38,10 +38,26 @@ static void generate_constant(int *buffer, size_t size) for (size_t i = 0; i < size; i++) buffer[i] = 42; } +static void generate_sorted_noise(int *buffer, size_t size) +{ + int noisemax = size / 4; + int noiseoff = size / 8; + + srandom(1); + for (size_t i = 0; i < size; i++) { + int noise = 0; + if (random() < 0.2 * RAND_MAX) { + noise = random() % noisemax - noiseoff; + } + buffer[i] = i + noise; + } +} + const struct generator generators[] = { - { .name = "random", .func = generate_random }, - { .name = "sorted", .func = generate_sorted }, - { .name = "reverse", .func = generate_reverse }, - { .name = "constant", .func = generate_constant }, + { .name = "random", .func = generate_random }, + { .name = "sorted", .func = generate_sorted }, + { .name = "reverse", .func = generate_reverse }, + { .name = "constant", .func = generate_constant }, + { .name = "sorted+noise", .func = generate_sorted_noise }, { 0 } }; -- cgit v1.2.3