Ich bin gerade auf diesen Code für eine Laboraufgabe gestoßen, die ich einreichen soll. Was der Code tut, ist die Eingabe einer ".dat" mit einer Liste von Wörtern (Die erste Zeile in der Datei ist die Anzahl der Datensätze). Dann prüft es die Länge jedes Wortes innerhalb der ".dat" -Datei und sortiert es basierend auf der Länge. Die niedrigste Anzahl von Buchstaben ist zuerst und die höchste ist die letzte. Hier ist der Code.Warum multiplizieren wir 2 innerhalb der for-Schleife?
Scanner scan = new Scanner(new File("words.dat"));
int dataSets = scan.nextInt();
scan.nextLine();
String[] words = new String[dataSets];
//int[] length = new int[dataSets];
for(int a=0; a<dataSets; a++)
{
words[a] = scan.next();
}
Arrays.sort(words);
for(int a = 0; a < words.length * 2; a++) //what is the purpose of this forloop?
{
for(int i = 0; i < words.length; i++)
{
if(i < words.length - 1)
{
if(words[i].length() > words[i + 1].length())
{
String temp = words[i];
words[i] = words[i + 1];
words[i + 1] = temp;
}
}
}
}
for(String word : words)
{
System.out.println(word);
}
ich nicht bekommen, warum multiplizieren wir die erste for-Schleife von 2.
for(int a = 0; a < words.length * 2; a++)
Schnelles Lesen, das sehe ich als eine nicht effiziente Blase sortieren. Aber die Komplexität ist O (n^2), also erkläre diesen Fehler, das braucht dieses '* 2' nicht, da dies in zwei Schleifen geschieht. – AxelH
" Ich bin gerade auf diesen Code für eine Laboraufgabe gestoßen im." Sie meinen, Sie haben jemandes Code gestohlen, um ihn als Ihren eigenen Auftrag zu verwenden, aber Sie verstehen ihn nicht? – Kayaman
[Blasensorte - Wikipedia] (https://en.wikipedia.org/wiki/Bubble_sort). Sie werden mit animierten Beispielen eine gute Erklärung für diesen Algorithmus finden. – AxelH