Gebe hiermit bekannt, dass Ich in Fach Informatik bereit bin ,falls ich kann , ein paar Tips zu geben wie man auf Durschnitt 1.0 heransteigt.
kann bei Sortierverfahren noch heute eine HILFE GEBEN.
Was dich nicht umbringt, Macht dich nur noch Stärker.
Proffessor.Dr.Drewer
Re: Informatik Nachhilfe
wenn ich Zeit haben werde, werde ich den bubblesort hier reinstellen
Re: Informatik Nachhilfe
habs gemacht
Re: Informatik Nachhilfe
/** * This Class has an Enummeration of Sort Methodes to further Use * * @author Vladimir Parashin * @version (beta) */ public class NewStdClass { // instance variables - replace the example below with your own
/** * An example of a method - replace this comment with your own * * @param y a sample parameter for a method * @return the sum of x and y */ public static int [] bubbleSort(int[] toSort) { // das Methode zu Sortieren boolean stop = false; int counter = 0; while(stop == false){ // Warte bis Stop Schleife counter++; stop = true; counter++; for(int i = 0;i<toSort.length-1;i++;){ counter++; if(toSort[i] >toSort[i+1]){ counter++; int temp = toSort[i]; // Tauschen counter++; toSort[i] = toSort[i+1]; counter++; toSort[i+1]= temp; counter++; stop = false; counter++; } } } return toSort; } public static void main(String args[]){ // Test int [] a = new int [8]; a[0]= 452; a[1]= -34; a[2]= 131; a[3]= 23; a[4]= -452; a[5]= -34; a[6]= 121; a[7]= -23;
a = bubbleSort(a); for(int x = 0;x System.out.println(a[x]); } } }
Sorry Andrej but thats how u do it
Was dich nicht umbringt, Macht dich nur noch Stärker.
Proffessor.Dr.Drewer
Re: Informatik Nachhilfe
MERGARDS VERGLEICH DER SORTIERVERFAHREN
/** Sortierverfahren * @author Mergard & If 11 2007/2008 (Me) * @version 20.4.2008 */ public class Sortiervergleich {
/** Wandelt einen Array in einen String um * @param derArray ein beliebiger Array aus Integern * @return den Inhalt des Arrays als String */ public static String ArrayAusgabe(int[] derArray) { String S = ""; for(int x = 0; x < derArray.length; x++){S += " "+derArray[x];} if (S.equals("")) return " (leerer Array)"; return S; }
/** Gibt eine Zusammenfassung zu einem Sortierverfahren aus * @param Verfahren ist der Name der Sortiermethode * @param sortiert ein sortierter Array aus Integern * @param wieviel ist die Anzahl der benötigten Schritte * @throws RuntimeException wenn der Array nicht korrekt sortiert ist*/ public static void Ausgabe(String Verfahren, int[] sortiert, int wieviel) { System.out.print(Verfahren+" liefert: in "+wieviel+" Schritten"); boolean ok = true; for (int i = 1; i < sortiert.length; i++) { //Prüfe, ob die Reihenfolge korrekt ist if (sortiert[i] < sortiert[i-i]) throw new RuntimeException("Falsches Ergebnis:"+ArrayAusgabe(sortiert)); } System.out.println(" das richtige Ergebnis."); }
/** Sortiert den Array durch "hochschieben" von Zahlen im Array * @param toSort der noch nicht sortierte Array aus Integern * @return der sortierte Array */ public static int[] bubbleSortStandard(int[] toSort) { //Sortiermethode int anz = 0; //Anzahl der ausgeführten Befehle anz ++; //für die Initialisierung der Schleifenvariablen "Obergrenze" for (int Obergrenze=toSort.length-1; Obergrenze > 0; Obergrenze --) // Warte bis Obegrenze klein genug wird { anz ++; //Schleifenabfrage anz ++; //für die Initialisierung der Schleifenvariablen "i" for(int i = 0; i < Obergrenze; i++) //für alle Array-Objekte { anz ++; //Schleifenabfrage if(toSort[i] > toSort[i+1]) { int temp = toSort[i]; // Tauschen toSort[i] = toSort[i+1]; toSort[i+1]= temp; anz += 3; //Vertauschen }// Ende des if-Befehls anz ++; //der Vergleich des if-Befehls anz ++; //Erhöhen der Schleifenvariablen "i" } anz ++; //letzte for-Schleifenabfrage die zum Abbruch führt } anz ++; //letzte for-Schleifenabfrage die zum Abbruch führt Ausgabe("Standard-BubbleSort",toSort,anz); return toSort; } //Ende der Sortiermethode
/** BubbleSort-Variante, die abbricht, wenn nichts mehr zu tun war * @param toSort der noch nicht sortierte Array aus Integern * @return der sortierte Array */ public static int[] bubbleSortMitBremse(int[] toSort) { //Sortiermethode boolean stop = false; int anz = 1; //Anzahl der ausgeführten Befehle anz ++; //für die Initialisierung der Schleifenvariablen "Obergrenze" for (int Obergrenze=toSort.length-1; stop == false; Obergrenze --) // Warte bis stop==true die Schleife beendet { anz ++; //Schleifenabfrage stop = true; anz++; anz ++; //für die Initialisierung der Schleifenvariablen "i" for(int i = 0; i < Obergrenze; i++) //für alle Array-Objekte { anz ++; //Schleifenabfrage if(toSort[i] > toSort[i+1]) { int temp = toSort[i]; // Tauschen toSort[i] = toSort[i+1]; toSort[i+1]= temp; stop = false; anz += 4; //Vertauschen und "stop" verändern }// Ende des if-Befehls anz ++; //der Vergleich des if-Befehls anz ++; //Erhöhen der Schleifenvariablen "i" } anz ++; //letzte for-Schleifenabfrage die zum Abbruch führt } anz ++; //letzte for-Schleifenabfrage die zum Abbruch führt Ausgabe("BubbleSort mit Bremse",toSort,anz); return toSort; } //Ende der Sortiermethode
/** BubbleSort-Variante ohne Obergrenze * @param toSort der noch nicht sortierte Array aus Integern * @return der sortierte Array */ public static int[] bubbleSortVladimirParashin(int[] toSort) { //Sortiermethode boolean stop = false; int anz = 1; //Anzahl der ausgeführten Befehle while(stop == false) // Warte bis stop==true die Schleife beendet { anz ++; //Schleifenabfrage stop = true; anz++; anz ++; //für die Initialisierung der Schleifenvariablen "i" for(int i = 0; i < toSort.length-1; i++) //für alle Array-Objekte { anz ++; //Schleifenabfrage if(toSort[i] > toSort[i+1]) { int temp = toSort[i]; // Tauschen toSort[i] = toSort[i+1]; toSort[i+1]= temp; stop = false; anz += 4; //Vertauschen und "stop" verändern }// Ende des if-Befehls anz ++; //der Vergleich des if-Befehls anz ++; //Erhöhen der Schleifenvariablen "i" } anz ++; //letzte for-Schleifenabfrage die zum Abbruch führt } anz ++; //letzte while-Schleifenabfrage die zum Abbruch führt Ausgabe("Vladimirs Methode",toSort,anz); return toSort; } //Ende der Sortiermethode
/** Bergleicht die Sortierverfahren anhand eines Beispiels * @param toSort der noch nicht sortierte Array aus Integern */ public static void Beispiel(int[] toSort) { System.out.println("Sortiere"+ArrayAusgabe(toSort)); int[] dummy = new int[toSort.length]; System.arraycopy(toSort,0,dummy,0,toSort.length); dummy = bubbleSortStandard(dummy); System.arraycopy(toSort,0,dummy,0,toSort.length); dummy = bubbleSortMitBremse(dummy); System.arraycopy(toSort,0,dummy,0,toSort.length); dummy = bubbleSortVladimirParashin(dummy); }
/** Hauptprogramm */ public static void main() { //Vergleiche die Verfahren an verschiedenen Beispielen int[] a0 = {}; Beispiel(a0); int[] a1 = {452, -34, 131, 23, -452, -34, 121, -23}; Beispiel(a1); int[] a2 = {0,1,2,3,4,5,6,7,8,9,10}; Beispiel(a2); int[] a3 = {10,9,8,7,6,5,4,3,2,1,0}; Beispiel(a3); } //Ende des Hauptprogramms }
Felern die ich bisher gefunden habe : > 25> boolean ok = true; braucht man nicht 141> public static void main(String args []) officielle screibweisse(sonst ist es nur eine ganz normalle statische Methode.) 28> if (sortiert[i] < sortiert[i-i]) muste i-1 sein; 52-53,83-84 da sollte jeweils anz ++; Stehen die für das obergrenzenänderung da ist. 66> war in der original Abfrage eine doppel check, nicht : for (int Obergrenze=toSort.length-1; stop == false; Obergrenze --) sondern:for (int Obergrenze=toSort.length-1; stop == false && Obergrenze >0; Obergrenze --) und danach natürlich anz++;
die Ergebnisse dafür wurden sich auch ändern bei 2-te Methode Schleife:3 176 39 448 (s....t, auf dieser Weisse ist es Sogar besser als meine bei der 1-tem Vergleich.Tja aber gerechtigkeit muss sein;)
Was dich nicht umbringt, Macht dich nur noch Stärker.
Proffessor.Dr.Drewer
Re: Informatik Nachhilfe
Hier HA: Standard-BubbleSort liefert: in 41 Schritten das richtige Ergebnis. BubbleSort mit Bremse liefert: in 53 Schritten das richtige Ergebnis. Vladimirs Methode liefert: in 66 Schritten das richtige Ergebnis. 1230-,ich bin ein Programmist, rechnen war gestern.
Was dich nicht umbringt, Macht dich nur noch Stärker.
Proffessor.Dr.Drewer
Re: Informatik Nachhilfe
der mergard aber sagte , dass es nur eine zeile falsch bzw. zugefügt werden sollte bei jeweils seiner methode d.h insgesammt nur zwei änderungen
Re: Informatik Nachhilfe
die Fehler habe ich leider nicht entdeckt
bei mir kommt heraus:
1. 38
2. 49
3. 66
Re: Informatik Nachhilfe
OK hab die HA fertig,aber das Erg. werde ich nur Morgen Nachmittag Veröffentlichen. Ihr könnt mich aber Ruhig Fragen falls ihr selbst nicht zurecht kommt .
ps. Andrej ich erwarte heute das du es fast fertig hinkriegst.
Was dich nicht umbringt, Macht dich nur noch Stärker.