fork download
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #define SWAP(x,y) {int t; t = x; x = y; y = t;}
  4.  
  5. void insertIntoHeap(int);
  6. int num=0;
  7. int number[999];
  8. int main(void) {
  9. int i;
  10.  
  11. printf("How many numbers:");
  12.  
  13. scanf("%d",&num);
  14. printf("%d\n", num);
  15.  
  16. for (i = 0; i < 999; i++)
  17. number[i] = -1;
  18.  
  19. printf("Enter the numbers:");
  20.  
  21. for(i = 1; i <= num; i++) {
  22. scanf("%d",&number[i]);
  23. }
  24.  
  25. for(i = 1; i <= num; i++)
  26. printf("%d ", number[i]);
  27.  
  28. printf("\n");
  29.  
  30. for(i = 1; i <= num; i++)
  31. insertIntoHeap(i);
  32.  
  33. printf("result:");
  34. for(i = 1; i <= num; i++) {
  35. printf("%d ", number[i]);
  36. }
  37. }
  38.  
  39. void insertIntoHeap(int index) {
  40. int newNumber = number[index];
  41. int i;
  42.  
  43. for(i = index; 1; ) {
  44. if (i == 1)
  45. break;
  46.  
  47. if(newNumber <= number[i/2]) break;
  48. number[i] = number[i/2];
  49. i /= 2;
  50. }
  51. number[i] = newNumber;
  52. }
Runtime error #stdin #stdout 0.02s 1724KB
stdin
5
3 5 2 6 1
stdout
How many numbers:5
Enter the numbers:3 5 2 6 1 
result:6 5 2 3 1