2016-07-02 8 views
-3

Ist dies die richtige Implementierung für Insertion sort. Ich bin verwirrt zwischen Bubble Sort und Insertion sort und neu in Datenstrukturen. Ist dies eine korrekte Implementierung von Insertion Sort?

import java.util.Scanner; 
import java.util.ArrayList; 
public class InsertionSort{ 
    public static void main(String args[]){ 
     Scanner reader = new Scanner(System.in); 
     ArrayList<Integer> numbers = new ArrayList<Integer>(); 
     System.out.println("Start entering the numbers to sort: "); 
     while(reader.hasNextInt()){ 
      numbers.add(reader.nextInt()); 
     } 
     for(int i=0; i<numbers.size(); i++){ 
      for(int j=i; j>0; j--){ 
       if(numbers.get(j) < numbers.get(j-1)){ 
        int temp = numbers.get(j); 
        numbers.set(j, numbers.get(j-1)); 
        numbers.set(j-1, temp); 
       } 
      } 
     } 
     System.out.print("Sorted list: "); 
     for(int i=0; i<numbers.size(); i++){ 
      System.out.print(" "+numbers.get(i)); 
     } 
     System.out.println(); 
    } 
} 
+0

stackoverflow ist keine Codeüberprüfungsseite. Es gibt unzählige Beispiele für die verschiedenen Sortieralgorithmen leicht gefunden mit Google – redFIVE

+0

@redFIVE können Sie vorschlagen, eine Website, wo ich es überprüft bekommen kann .. Danke – newbie

+0

http://www.eecs.wsu.edu/~ananth/CptS223/Lectures/ sorting.pdf verweisen Sie für weitere Details in Sortieren und anderen Algorithmen. –

Antwort

1

Dies scheint nicht richtig, Ihre zwei verschachtelten Schleifen zu tun durchqueren nicht die richtig Arrays. Ihre äußere Schleife sollte von [0, N-1) gehen, während Ihre innere Schleife von (M, N) gehen sollte, wobei M die Variable der äußeren Schleife ist. Ich würde empfehlen, Bubble-Sort und Insertion-Sort zu überprüfen.

HackerRank hat ein Problem damit, wo Sie Ihr Programm durch Druckbefehle verifizieren können.

0
for(int i=1; i<numbers.size(); i++){ 
       int item = numbers[i]; 
       int j = i; 
       while(j>0 && numbers[j-1]>item){ 
        numbers[j-1] = numbers[j]; 
        j--; 
       } 
    numbers[j] = item; 
      } 
Verwandte Themen