home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Programming / C / SASC6571.LZX / examples / csource / sort.c < prev    next >
Encoding:
C/C++ Source or Header  |  1996-12-24  |  726 b   |  46 lines

  1. #include <stdio.h>
  2.  
  3. void swap(int *, int *);
  4.  
  5. void init(int *arrayPtr, int size)
  6. {
  7.    int i;
  8.    int *ptr;
  9.    
  10.    ptr = arrayPtr;
  11.    for (i=1; i < size - 1; i++)
  12.       *ptr++ = i;
  13. }
  14.  
  15. /* Reverse sort the elements of the array */
  16.  
  17. int sort(int *arrayPtr, int size)
  18. {
  19.    int i, swapped;
  20.    int *ptr;
  21.    
  22.    ptr = arrayPtr;
  23.    swapped = 0;
  24.    
  25.    for (i=0; i < size - 1; i++)
  26.       if (ptr[i] < ptr[i+1] )
  27.       {
  28.          swap(&ptr[i], &ptr[i+1]);
  29.          swapped = 1;   /* indicate a swap took place */
  30.       }
  31.       
  32.    return swapped;
  33. }
  34.  
  35. /* Print the array */
  36.  
  37. void printArr(int *arrayPtr, int size)
  38. {
  39.    int i;
  40.    int *ptr;
  41.    
  42.    ptr = arrayPtr;
  43.    for (i=1; i < size - 1; i++)
  44.       printf("array[%d] is %d\n",i,*ptr++);
  45. }
  46.