Methoden Eigenen Sortier Methode erstellen

kaoZ

Top Contributor
Hallo, ich probier mich grad ein bisschen aus und steh vor einer kleinen blockade ^^

hier mal mein Ansatz um ein eigenen Sortier-Algorithmus zu schreiben :rtfm: :

Java:
package grundlagen;

public class Sortierer {

	String[] list;
	
	public Sortierer(String[]list){
		
		this.list = list;
		
		String unsorted="";
		
		for(String s : list){
			
			unsorted +=  s + "\n";
		}
		
		System.out.println(unsorted); // einfach die unsortierte liste ausgeben 
	}
	public void sort(){
		
		char[] letter = {'A','B','C','D','E','F','G','H',
						'I','J','K','L','M','N','O','P',
						'Q','R','S','T','U','V','W','X','Y','Z'};
		
                /* Ich bin mir noch nicht wirklich sicher ob das hier der richtige ansatz ist :),
                 * ich würde erstmal prüfen ob list[i] mit einem dem Buchstaben aus letter[]  
                 * übereinstimmt und list[i] dann in dem array auf die position setzen an der die 
                 * übereinstimmung mit dem index in letter[] stattfand. */

		for(int i=0;i<list.length;i++){

			for(int x=0;x<letter.length;x++){
				
				if(list[i].startsWith(String.valueOf(letter[x]))){  
					
                // Hier müsste man doch theoretisch list[i] die Position zuweisen an der 
                // list[i] mit letter[x] übereinstimmt oder ?
				}
			}
		}
	}

	public static void main(String[] args) {
		new Sortierer(new String[]{"Pferd","Tracktor","Kuchen","Flugzeug"}).sort();
		
	}

}
 
Was ist denn dein gewünschtes Sortierverfahren? Bubblesort? Quicksort? merge-sort ... ?
Du musst ja erstmal eine Idee haben, wie man sortiert, sonst bringt dir dein char-Array und dein Vergleich nichts.
 
Es geht mir ebend darum , genau die Logik die dahinter steckt selbst zu implementieren und zu verstehen, sprich wenn ich eine liste erstelle, selbst zu definieren wie die Elemente in der liste sortiert werden, deswegen wollte ich als ersten schritt die Elemente in dem im Konstruktor erstelltem Array mit den Elementen des char Arrays vergleichen und darauf prüfen ob Elemente mit gleichem Anfangsbuchstaben vorhanden sind, wie diese dann letztendlich sortiert werden , da bin ich ja noch dran,
bei quick, merge und bubble sort wird ja das Array erstmal in 2 neue Arrays zerlegt und dann intern sortiert, bein Zahlen ist dies noch relativ einfach nachzuvollziehen, bei Buchstaben jedoch müsste ich ja erstmal bestimmen welcher Buchstabe an welcher stelle steht [0-25].

Schau mir grad erstmal compareTo(); an ob mir das weiterhilft bzw. ob mir das beim versuch meinen eigenen sortieralgorithmus zu entwerfen hilft ^^
 
Zuletzt bearbeitet:
Jeder Char in Java kann auch als int aufgefasst werden (ASCII Code), deshalb kannst du bei chars auch schauen, ob diese größer oder kleiner sind. Hierbei wird aber zwischen groß und Kleinschreibung unterschieden.
Diese Aufteile ala Divide & Conquer macht bubblesort nicht, daher ist das ein ziemlich einfach zu verstehendes Verfahren.

Java gibt standardgemäß immer einen int wert zurück um auszudrücken, ob ein String größer/gleich/kleiner ist als ein anderer. Das ist realtiv schön, da du am Ende nur wenig Information brauchst um dies zu errechnen und wiederum leicht damit zu rechnen ist.
 

Zurück
Oben