- // Umwandeln der Argumente in Zahlen
- int *b;
- int i, len;
-
- printf("Heap.c\n");
-
- len = argc - 1;
- b = (void *)malloc(len * sizeof(*b));
-
- for(i = 0; i < argc-1; i++) {
- b[i] = atoi(argv[i+1]);
- printf(" %d\n", b[i]);
- }
-
- if (len < 1) {
- printf("Usage: HeapSort <list of numbers>\n");
- printf("Continuing with default input.\n");
- // b = new int[] {3, 18, 5, 99, 104, 2};
- b = (void *)malloc(sizeof(*b) * (len = 6));
- b[0] = 3; b[1] = 18; b[2] = 5; b[3] = 99; b[4] = 104; b[5] = 2;
- }
-
- // Ausgabe
- //System.out.print("array={");
- // printf("length of array to sort: %d -- first element b[0]: %d\n", len, b[0]);
- printf(" array = ");
- for(i = 0; i < len - 1; i++) {
- printf(" %d,", b[i]);
- }
- if (len > 0) {
- printf(" %d\n", b[len - 1]);
- }
- // Sortieren
- b = heapsort(b, len);
-
- // Ausgabe
- printf(" sorted array = ");
- for(i = 0; i < len - 1; i++) {
- printf(" %d,", b[i]);
- }
- if (len > 0) {
- printf(" %d\n", b[len - 1]);
- }
- return 0;
+ // Umwandeln der Argumente in Zahlen
+ int *b;
+ int i, count, seed;
+
+ printf("Heap.c\n");
+
+ if(argc > 1)
+ count = atoi(argv[1]);
+ else
+ count = 10000;
+
+ if(argc > 2)
+ seed = atoi(argv[2]);
+ else
+ seed = 123456;
+
+ srand(seed);
+
+ b = (void*) malloc(sizeof(b[0]) * count);
+ for(i = 0; i < count; ++i)
+ b[i] = rand();
+
+ printf("Sorting %d random numbers (seed %d)\n",
+ count, seed);
+
+ // Sortieren
+ b = heapsort_(b, count);
+
+ printf("Sorted.\n");
+
+ if(verify(b, count))
+ printf("Verify succeeded.\n");
+ else
+ printf("Verify failed.\n");
+
+ return 0;