Liebe Java-Community,
ich habe ein Problem mit einer für mich sehr großen Aufgaben!
Ich soll zwei Methoden schreiben, nämlich den Algorithmus insertionSort und einmal
die Boolean isSorted ... das war kein Problem! (haufenweise Pseudo-Codes im Netz)
Bei der Main Methode tauchen die Schwierigkeiten bei mir auf. Folgende Aspekte
müssen vorhanden sein:
1) erstes Argument die Feldgröße übergeben und als zweites (optional) Argument
die Befüllungsart des Feldes (auf, ab, rand = aufsteigend, absteigend, zufällig)
2) danach soll insertionSort das befüllte Array sortieren und dabei soll die Zeit gemessen werden
3) letztendlich soll das Array auf korrekte Sortierheit getestet werden, sprich ausgeben Feld sortiert oder nicht
4) das Feld und die Zeit sollen nur bei höchstens 100 Elementen angegeben werden
___
1) kein Schimmer wie das gehen soll bis auf die zufällige Variante .. Math.random sollte das dort klären oder?
2) auch gar keinen Schimmer wie ich das bewerkstelligen soll!
3) reicht es dort, wenn ich einfach mit system.out.printlin arbeite und ein simple if/else?
4) if/else sollte auch hier klären mit einfache system.out.println
___
Die Main Methode sollte mit Integer.parseInt arbeiten!
Hier ist noch mein Code, soweit wie ich halt gekommen bin.
Danke im Voraus!
Gruß
ich habe ein Problem mit einer für mich sehr großen Aufgaben!
Ich soll zwei Methoden schreiben, nämlich den Algorithmus insertionSort und einmal
die Boolean isSorted ... das war kein Problem! (haufenweise Pseudo-Codes im Netz)
Bei der Main Methode tauchen die Schwierigkeiten bei mir auf. Folgende Aspekte
müssen vorhanden sein:
1) erstes Argument die Feldgröße übergeben und als zweites (optional) Argument
die Befüllungsart des Feldes (auf, ab, rand = aufsteigend, absteigend, zufällig)
2) danach soll insertionSort das befüllte Array sortieren und dabei soll die Zeit gemessen werden
3) letztendlich soll das Array auf korrekte Sortierheit getestet werden, sprich ausgeben Feld sortiert oder nicht
4) das Feld und die Zeit sollen nur bei höchstens 100 Elementen angegeben werden
___
1) kein Schimmer wie das gehen soll bis auf die zufällige Variante .. Math.random sollte das dort klären oder?
2) auch gar keinen Schimmer wie ich das bewerkstelligen soll!
3) reicht es dort, wenn ich einfach mit system.out.printlin arbeite und ein simple if/else?
4) if/else sollte auch hier klären mit einfache system.out.println
___
Die Main Methode sollte mit Integer.parseInt arbeiten!
Hier ist noch mein Code, soweit wie ich halt gekommen bin.
Danke im Voraus!
Gruß
Java:
import java.util.Random;
public class InsertionSort
{
public static void main(String args[])
{
Random rd = new Random();
int arr[] = new int[10000];
// arr = {1,4,6,78,9,5};
for(int i = 0; i < arr.length; i++)
{
arr[i] = rd.nextInt();
System.out.println(arr[i]);
}
}
public static void insertionSort(int[] a)
{
int key = a.length;
for (int j = 2; j < a.length; j++)
{
key = a[j];
int i = j - 1;
while ( i >0 && a[i] > key)
{
a[i + 1] = a[i];
i = i - 1;
}
a[i + 1] = key;
}
}
/* public static boolean isSorted(int[] array)
{
for (int i = 0; i < array.length; i++)
{
for (int j = i; j < array.length; j++)
{
if (array[i] > array[j])
{
return false;
}
}
}
return true;
}
*/
public static boolean isSorted(int[] array)
{
for (int i = 0; i < array.length; i++)
{
for (int j = i; j < array.length; j++)
{
assert array[i] > array[j]:"array[i] größer als array[j]";
}
}
return true;
}
}
Anhänge
Zuletzt bearbeitet von einem Moderator: