shellsort absteigend sortieren



  • Wie muss ich dieses Programm umändern damit ich das Array absteigend sortiert bekommen?

    #include <stdio.h>
    
    void shellsort (int array[], int elemente) {
      int i, j, temp, n;
      for ( n = 1; n <= elemente/9; n = 3*n+1);
      for (; n > 0; n /= 3) {
           for (i = n; i <= elemente; i++) {
               temp = array[i];
               for ( j = i;
                     j >= n && array[j-n] > temp;
                     j -= n) {
                              array[j] = array[j-n];
                             }
               array[j] = temp;
             }
        }
    
    }
    
    int main()
    {
       int i;
       /*Das Array zum Sortieren*/
       int test_array[] = { 5, 0, 2, 7, 9, 1, 4, 3, 8, 6 };
       int N = sizeof(test_array)/sizeof(int);
    
       shellsort(test_array, N-1);
    
       for(i=0; i<N; i++)
          printf("%d ",test_array[i]);
       printf("\n");
       getchar ();
       return 0;
    }
    


  • (...)
    // j >= n && array[j-n] > temp;  // aufsteigend
       j >= n && array[j-n] < temp;  // absteigend
    (...)
    

Anmelden zum Antworten