aboutsummaryrefslogtreecommitdiff
path: root/test/heapsort.c
diff options
context:
space:
mode:
authorVikram S. Adve <vadve@cs.uiuc.edu>2001-11-06 17:06:06 +0000
committerVikram S. Adve <vadve@cs.uiuc.edu>2001-11-06 17:06:06 +0000
commit7b10c3694a09cf5ee8b0aa19b2ea5ca25e895023 (patch)
treeb393f08e28848b5f239ebb824d771f906605d32d /test/heapsort.c
parentd1565abd688daeff10f9398bd04df837b3d467ed (diff)
Moved *.c files into subdirectory TestSources to avoid overwriting
corresponding *.ll files. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@1155 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/heapsort.c')
-rw-r--r--test/heapsort.c75
1 files changed, 0 insertions, 75 deletions
diff --git a/test/heapsort.c b/test/heapsort.c
deleted file mode 100644
index 17c1185ddc..0000000000
--- a/test/heapsort.c
+++ /dev/null
@@ -1,75 +0,0 @@
-/* -*- mode: c -*-
- * $Id$
- * http://www.bagley.org/~doug/shootout/
- */
-
-#include <stdlib.h>
-#include <math.h>
-#include <stdio.h>
-
-#define IM 139968
-#define IA 3877
-#define IC 29573
-
-double
-gen_random(double max) {
- static long last = 42;
- return( max * (last = (last * IA + IC) % IM) / IM );
-}
-
-void
-heapsort(int n, double *ra) {
- int i, j;
- int ir = n;
- int l = (n >> 1) + 1;
- double rra;
-
- for (;;) {
- if (l > 1) {
- rra = ra[--l];
- } else {
- rra = ra[ir];
- ra[ir] = ra[1];
- if (--ir == 1) {
- ra[1] = rra;
- return;
- }
- }
-
- i = l;
- j = l << 1;
- while (j <= ir) {
- if (j < ir && ra[j] < ra[j+1]) {
- ++j;
- }
- if (rra < ra[j]) {
- ra[i] = ra[j];
- j += (i = j);
- } else {
- j = ir + 1;
- }
- }
- ra[i] = rra;
- }
-}
-
-int
-main(int argc, char *argv[]) {
- int N = ((argc == 2) ? atoi(argv[1]) : 10);
- double *ary;
- int i;
-
- /* create an array of N random doubles */
- ary = (double *)malloc((N+1) * sizeof(double));
- for (i=1; i<=N; i++) {
- ary[i] = gen_random(1);
- }
-
- heapsort(N, ary);
-
- printf("%f\n", ary[N]);
-
- free(ary);
- return(0);
-}
-