2016-04-11 17 views
0

arbeite ich bin neu auf Java, ich habe Problem Array, ich versuche zu schreiben Array-Verfahren das Sortieren, aber ich kann nicht den Erfolg, bitte korrigieren Sie mich, ich Array wollen absteigend sortieren:Java Array Sortierung nicht

public static int[] sirala(int[] arr){ 
    int[] yeni = new int[arr.length]; 
    for(int i = 0; i< arr.length-1;i++){ 
     if(arr[i+1] > arr[i]){ 
      yeni[i] = arr[i+1]; 
     } 
     else{ 
      yeni[i] = arr[i]; 
     } 
    } 
    return yeni; 
} 

Danke für Ihre Hilfe

+2

Du nur einmal Looping - es gibt keine Möglichkeit, nur einmal sortieren können über Daten Looping ... (na ja, da ist, aber lassen wir das ignorieren vorerst) –

+0

I Eingabefeldlänge Looping so nicht einmal Zeit ? – androboy

+3

Nimm ein Stück Papier und einen Stift; Untersuche dann, was dein Algorithmus macht und wie du ihn reparieren kannst. Alle Algorithmen beginnen mit Stift und Papier ... –

Antwort

0

ändern Ihrer Methode sirala wie diese below.You zwei Schleifen innere Schleife verwenden haben das größte Element an die Vorderseite des Array (größte Anzahl an 0 Index verschoben wird herauszunehmen, 2nd Größte wird zu 1 Index und so weiter verschoben ...), dann müssen Sie es einfach dem yeni Array zuweisen ' s jeweiliges Element nach innerer Schleife.

public static int[] sirala(int[] arr) 
{ 
     int[] yeni = new int[arr.length]; 
     //shifting ith largest element to (i-1)th pos of arr 
     for(int i = 0; i< arr.length;i++) 
     { 
      for(int j = i+1; j< arr.length;j++){ 
       if(arr[j] > arr[i]){ 
        int tmp=arr[i]; 
        arr[i] = arr[j]; 
        arr[j]=tmp; 
       } 
      } 
      //assigning element to new array 
      yeni[i] = arr[i]; 
     } 
     return yeni; 
} 
+0

Danke für deine Antwort, es funktioniert – androboy