Προς το περιεχόμενο

Βοήθεια με (JAVA) Straight Radix Sort


SpY

Προτεινόμενες αναρτήσεις

Δημοσ.

Παιδιά πρέπει να φτίαξω μια απλή εφαρμογή η οποία :

Δίνονται 10 αριθμοι αταξινόμητοι πχ 8,2,4,6,0,1,4,9,3,5,7

και πρέπει να ταξινομηθούν με τον Αλγόριθμο Straight Radix Sort

 

O αλγόριθμος ειναι αυτος :

 

> class StraightRadixSort {

       static final int w = 7, m = 1;
       static final int M = (int) Math.pow(2, m);

       int bits(int x, int k, int j)
           { return (x >> k) & ~(~0 << j); }

       void straightradix(int a[]) {
           int i, j, pass, N = a.length;
           int b[] = new int[N];
           int count[] = new int[M];
           for (pass = 0; pass < w/m; pass++) {
               for (j = 0; j < M; j++) count[j] = 0;
               for (i = 0; i < N; i++)
                   count[bits(a[i], pass*m, m)]++;
               for (j = 1; j < M; j++)
                   count[j] += count[j-1];
               for (i = N-1; i >= 0; i--)
                   b[--count[bits(a[i], pass*m, m)]] = a[i];
               for (i = 0; i < N; i++) { a[i] = b[i];  }
           }
       }

       void sort(int a[]) {
           straightradix(a);
       }
   }

 

Μπορεί κάποις να με βοηθήσει για την υλοποίηση ? Ευχαριστω προκαταβολικά

Δημοσ.

To mono pou xreiazetai na kaneis einai na dhmiourghseis ena array me tous akeraious pou 8eleis na kaneis sort, na dhmiourghseis ena antikeimeno ths class pou exeis kai na kaleseis th me8odo sort tou antikeimenou. Amesws meta to array 8a einai ta3inomhmeno.

 

Filika

Dionisos

Δημοσ.

Dionisos

 

Τελικά το έκανα!!

 

> int [] sortArray = {5, 3, 8, 6, 4,
                   1, 9, 2, 0 ,7,};
   
   // make an instance of the StraightRadixSort class
   StraightRadixSort srs = new StraightRadixSort();
   // invoke the StraightRadixSort class' sort() method
   srs.sort(sortArray);
    System.out.print("Arxikos Pinakas :"); //Ektyowsi Arxikou Pinaka
     System.out.print("5, 3, 8, 6, 4, 1, 9, 2, 0, 7,");  
      System.out.println(); 
   
   //---Ektypwsi Taxinomimenou Pinaka
    System.out.print("Taxinomimenos Pinakas :");
   for (int i=0; i < sortArray.length; i++) 
     System.out.print(sortArray[i]);
      System.out.println();
   }
}

Απλά μια μικρή ερώτηση: Ο Taxinomimenos Pinakas μου εκτυπώνεται ο ενας αριθμός δίπλα στον άλλον 012345.... πως μπορώ να βάλω κενό ανάμεσα ???

Κατι με το Print παίζει αλλά δεν θυμάμαι τι!!!

Ευχαριστώ

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...