Skip to content
Snippets Groups Projects
Commit c8d6948b authored by Thomas Schaller's avatar Thomas Schaller
Browse files

Lösungen von Selection-, Bubble- und Insertion-Sort

Quicksort hinzugefügt.
parent 38260f44
No related branches found
No related tags found
No related merge requests found
package Sortieralgorithmen;
/**
*
* Beschreibung
*
* @version 1.0 vom 19.11.2010
* @author
*/
public class Bubblesort extends SortingAlgorithm {
// Anfang Attribute
// Ende Attribute
public Bubblesort()
{
super();
name = "BubbleSort";
}
// Anfang Methoden
public void sort() {
start();
int i; int j;
boolean fertig;
for (i=0; i < reihe.getLaenge()-1; i++) {
fertig = true;
for (j=0; j < reihe.getLaenge()-i-1; j++) {
if (reihe.istInhaltKleiner(j+1, j)) {
reihe.tauscheInhalteAnPos(j+1,j);
fertig = false;
}
}
if (fertig) {
break;
}
}
stop();
}
// Ende Methoden
}
package Sortieralgorithmen;
public class QuickSort extends SortingAlgorithm {
// Anfang Attribute
// Ende Attribute
public QuickSort()
{
super();
name = "QuickSort";
}
// Anfang Methoden
public void sort(int l, int r) {
if (l>=r) {
return;
}
int i, j;
int pivot = r;
i = l;
j = r-1;
// System.out.println("l:"+l+"-r:"+r);
while (i <= j) {
while (reihe.istInhaltKleiner(i,pivot)) {
i++;
}
while (j>=i && !reihe.istInhaltKleiner(j,pivot)) {
j--;
}
// System.out.println(" i:"+i+"("+zahl[i]+")-j:"+j+"("+zahl[i]+") p:"+pivot);
if (i < j) {
// System.out.println(" Vertauscht");
reihe.tauscheInhalteAnPos(i,j);
i++;
j--;
}
}
reihe.tauscheInhalteAnPos(pivot,i);
sort(l,i-1);
sort(i+1,r);
}
public void sort() {
start();
sort(0,reihe.getLaenge()-1);
stop();
}
// Ende Methoden
}
...@@ -27,12 +27,19 @@ public class SelectionSort extends SortingAlgorithm ...@@ -27,12 +27,19 @@ public class SelectionSort extends SortingAlgorithm
public void sort(){ public void sort(){
start(); start();
/*# int i;
* Aufgaben: int q;
* 1) Implementiere in der Methode "public void sort()" den SelectionSort-Algorithmus. int j;
* 2) Erzeuge mind. zwei Objekte der Klasse und vergleiche in den Inspect-Fenstern
* die Felder und die Sortierdauer vor und nach dem Sortieren for (i = reihe.getLaenge()-1; i>0; i--){
*/ q= 0;
for (j=1; j<=i; j++) {
if (reihe.istInhaltKleiner(q,j)) {
q= j;
}
}
reihe.tauscheInhalteAnPos(q,i);
}
stop(); stop();
} }
......
#BlueJ package file #BlueJ package file
objectbench.height=93 objectbench.height=93
objectbench.width=760 objectbench.width=451
package.divider.horizontal=0.599476439790576 package.divider.horizontal=0.599476439790576
package.divider.vertical=0.7975708502024291 package.divider.vertical=0.7975708502024291
package.editor.height=387 package.editor.height=387
package.editor.width=649 package.editor.width=649
package.editor.x=153 package.editor.x=153
package.editor.y=178 package.editor.y=178
package.frame.height=594 package.frame.height=594
package.frame.width=800 package.frame.width=800
package.numDependencies=0 package.numDependencies=0
package.numTargets=3 package.numTargets=5
package.showExtends=true package.showExtends=true
package.showUses=true package.showUses=true
readme.height=60 readme.height=60
readme.name=@README readme.name=@README
readme.width=49 readme.width=49
readme.x=10 readme.x=10
readme.y=10 readme.y=10
target1.height=70 target1.height=70
target1.name=SelectionSort target1.name=QuickSort
target1.showInterface=false target1.showInterface=false
target1.type=ClassTarget target1.type=ClassTarget
target1.width=120 target1.width=120
target1.x=40 target1.x=360
target1.y=220 target1.y=180
target2.height=70 target2.height=70
target2.name=InsertionSort target2.name=Bubblesort
target2.showInterface=false target2.showInterface=false
target2.type=ClassTarget target2.type=ClassTarget
target2.width=120 target2.width=120
target2.x=10 target2.x=210
target2.y=110 target2.y=240
target3.height=70 target3.height=70
target3.name=SortingAlgorithm target3.name=SelectionSort
target3.showInterface=false target3.showInterface=false
target3.type=AbstractTarget target3.type=ClassTarget
target3.width=130 target3.width=120
target3.x=140 target3.x=40
target3.y=110 target3.y=220
target4.height=70
target4.name=InsertionSort
target4.showInterface=false
target4.type=ClassTarget
target4.width=120
target4.x=10
target4.y=130
target5.height=70
target5.name=SortingAlgorithm
target5.showInterface=false
target5.type=AbstractTarget
target5.width=130
target5.x=170
target5.y=110
#BlueJ package file #BlueJ package file
editor.fx.0.height=0 editor.fx.0.height=739
editor.fx.0.width=0 editor.fx.0.width=816
editor.fx.0.x=0 editor.fx.0.x=714
editor.fx.0.y=0 editor.fx.0.y=136
objectbench.height=87 objectbench.height=87
objectbench.width=802 objectbench.width=477
package.divider.horizontal=0.6004962779156328 package.divider.horizontal=0.6004962779156328
package.divider.vertical=0.6531365313653137 package.divider.vertical=0.6531365313653137
package.editor.height=170 package.editor.height=170
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment