sort(int[] a, int fromIndex, int toIndex)

mistirios

Mitglied
Verfasst am: 24. 10. 2007, 15:37 Titel: sort(int[] a, int fromIndex, int toIndex) Zitieren
Druckversion downloaden (dieser Post)

--------------------------------------------------------------------------------

Hallo,

und zwar habe ich folgendes Problem. Ich habe in einer Klasse von mir eine int[] array= new int[2*n+2] deklariert.
Jetzt fülle ich das array über die Eingabe. Ich möchte das das array aber immer sortiert ist.

jetzt wollte ich die sort funktion benutzen und habe folgende parameter benutzt:

sort(array,0, anzahlderElementeimArray);

anzahlderElementeimArray ist eine Variable, die die Anzahl der aktuellen ints im Array hat.


Code:
Beispiel: 

Array von grösse 3. 

anzahlderElementinArray=0; 

füge 4 ein.. 

index 0=4; 
index 1=0; 
index 2=0; 

sort(array,0,anzahlderElementinArray); 
anzahlderElementinArray++; 

füge 3 ein.. 

index 0=4; <-- nicht sortiert 
index 1=3; <--nicht sortiert 
index 2=0: 

in meinem sort aufruf sieht das dann so aus: 
sort(array,0,anzahlderElementinArray). <-- wobei ja hier anzahlderElementinArray=1 ist..

Nur leider funktioniert das nicht. Was mache ich falsch?

gruss mistirios
 
Hy,

auf der Seite:
http://www.javakb.com/Uwe/Forum.aspx/java-programmer/1097/Merge-Sort-question
findest Du folgendes:


Code:
MERGE_SORT(Array,begin,end)
  {
   if ( begin < end )
   {
       middle = ( begin + end ) / 2

      // merge sort first half of array
      MERGE_SORT(Array,begin,end/2);

      // merge sort second half of array
      MERGE_SORT(Array,end/2,end);

      MERGE(Array,begin,middle,end);
    }
 
  }

Das Feld oben wird nur zwischen "end/2" und "end" sortiert.


-----------------------------------------------------------------------------------------------------------------------------
sort(array,0,anzahlderElementinArray). <-- wobei ja hier anzahlderElementinArray=1 ist..
-----------------------------------------------------------------------------------------------------------------------------
Vergleichst Du das mit der Anweisung "anzahlderElementinArray=1" heißt das, daß
"sort(array,0,anzahlderElementinArray)" zwischen "0" und "1" sortiert, also garnichts
passiert.

Arnulf
 
Zurück