Counting Sort (Sortieren durch Zählen)

Blistex

Mitglied
hallo , ich habe die aufgabe, einen Counting Sort zu implementieren. Komme nun aber einfach nicht weiter ... wäre nett wenn mir jemand helfen könnte.

das habe ich bis jetzt:

Java:
import java.util.*;

class zählen
{
public static void main(String[] args)
{
 int n = 1;  // Anzahl der Elemente des Arrays
	int[] array = new int[n]; 
    
	// Zufallsgenerator:
	Random rnd = new Random(); 
	for (int i=0; i<array.length; i++)
	{
		array[i] = rnd.nextInt(10*n)+1; // Zufallszahlen zwischen 1 und 10n	
    }
	
	zaehlen(array,k);
	

static void zaehlen (int[]array, k)
 {
 int k = max_value();  								// Maximum in Array
 int neu[] = new int[array.length];
 int hilf[] = new int[k+1]; 						// +1 ?
 
 for( i= 0 ; i<k+1 ; i++)							// Erzeugung eines Arrays mit 0
	{
    hilf[ i ] = 0;
	}

for(i = 0 ; i<array.Length; i++) 					// Anzahl der Häufigkeit einer Zahl
{
    hilf[array[i]] = hilf[array[i]] + 1;
}
 
for( i = 0 ; i<k+1 ; i++) 							// Addieren des Hilf-Arrays (bis zu welcher Position eine Zahl auftaucht)
{
    hilf[i] = hilf[i] + hilf[i + 1];
}

for(i = array.length-1;i>=0 ; i--) 					// Sortieren in neues Array (von hinten nach vorne)
{
    neu[hilf[array[i]] - 1 ] = array[i];	// Werte werden ins neue Array geschrieben --> -1 weg?
    hilf[array[i]] = hilf[array[i]] - 1;	// um 1 vermindert
}

 }
}
}

das wird mir als Fehler beim compilieren angezeigt:

:20: error: illegal start of expression
static void zaehlen (int[]array, k)

Vielen Dank schonmal für eure Antworten.
 

MR_UNIX

Bekanntes Mitglied
Du hast in deinen Parametern stehen "int[] array, k" - dein "k" ist aber nicht typisiert. Du musst dem Compiler noch sagen, was dein "k" für ein Datentyp sein soll.
 

Deros

Bekanntes Mitglied
dein Code ist leider gespickt mit Fehlern.
1. Deine Main Methode öffnet sich zwar mit einer geschweiften Klammer aber schliesst diese erst nach der Methode zahlen, das müsste sie vorher.
2. IN Zeile 17 rufst du zahlen mit k auf. Was soll k sein? Die Variabel fällt in dem Moment einfach vom Himmel oder wie?
3. Konsequenterweise hat in Zeile 20 die Methode zahlen auch keinen Typ für den Parameter k, was so natürlich nicht klapp.
4. Zeile 22 k bekommt endlich einen Typ und soll mit der Methode max_value() initialisiert werden. Die Methode fehlt aber im Code...
5. Zeile 26 das i in der for-Schleife hat auch keinen Typ int wäre hier wohl angebracht. Wiederholt sich für alle for-schleifen.
6. Zeile 31. array.Length müsste array.length sein

Dann würde der Code zumindest kompilieren, aber ob er auch nur ansatzweise das macht was er soll...???:L
 

Blistex

Mitglied
also zu deinem 4. punkt kann ich nur sagen , dass ich den befehl max_value() einfach so von meinem lehrer auf einem blatt bekommen habe. Was muss ich denn machen, damit der funktioniert?

achso und zudem sollte man sagen, dass informatik nicht gerade mein fach ist :D
 
Zuletzt bearbeitet:

Deros

Bekanntes Mitglied
da stand doch bestimmt noch was bei, was soll die Methode denn deiner Meinung nach machen? Wahrscheinlich doch den maximal Wert von irgendwas zurückgeben oder? dazu müsste die Methode ja zumindest wissen wovon du den maximal Wert haben möchtest oder? Das array würde sich doch anbieten...
 

Blistex

Mitglied
ja also mit dem befehl möchte ich ja den höchsten wert aus dem array wissen bzw angeben. muss ich also max_value() deklarieren oder wie ? also muss ich angeben, welcher der höchste wert ist?
 

Deros

Bekanntes Mitglied
dir ist doch bestimmt bekannt wie man 2 zahlen vergleicht?
also erste Zahl merken mit der zweiten vergleichen. größere von beiden merken und mit der nächsten vergleichen und soweiter und sofort bis array durchgelaufen ist.
 

kaoZ

Top Contributor
Ich habe mal Versucht es so einfach und übersichtlich wie möglich zu gestalten, eine Implementierung zum Auffinden der niedrigsten Zahl solltest du unter Verwendung dieses Beispiels eigentlich alleine hinbekommen:

Java:
public class Foo {
	
	public Foo() {}
	
	static int findHighestValue(int[] arr){
		int helper = 0;
		
		for (int i = 0; i < arr.length; i++) {
	        if (arr[i] > helper) {
	            helper = arr[i];
            }
        }
		
		return helper;
	}
	
	public static void main(String[] args) {
		
		int[] array = {1,5,3,6,7,9,44};
		
	    System.out.println(Foo.findHighestValue(array));
    }
}

Ausgabe ist Logischerweise :

Code:
44
 
Zuletzt bearbeitet:

Blistex

Mitglied
jetzt steh ich iwie total auf dem schlauch oder ich bin einfach zu doof für sowas... :/

das hab ich bis jetzt ...

Java:
import java.util.*;

class zaehlen1
{
public static void main(String[] args)
{
    //int n = 5;  // Anzahl der Elemente des Arrays
	//int[] array = new int[n]; 
    
	// Zufallsgenerator:
	//Random rnd = new Random(); 
	//for (int i=0; i<array.length; i++)
	//{
	   //array[i] = rnd.nextInt(10*n)+1; // Zufallszahlen zwischen 1 und 10n	
   // }
	
	 int[] array = {1, 2, 4, 2, 6};
	 
	 System.out.println(zaehlen1.findewert(array));
	
	zaehlen(array);
}

 static int findewert(int[] array)					// höchsten Wert finden
 {

        int helper = 0;

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

            if (array[i] > helper) 
			{
			helper = array[i];
			}
		}

        return helper;

    }


static void zaehlen (int[]array)
 {
 int k = helper;									// max_value();  ?								 // Maximum in Array
 int neu[] = new int[array.length];
 int hilf[] = new int[k+1]; 						// +1 ?
 
 for(int i= 0 ; i<k+1 ; i++)							// Erzeugung eines Arrays mit 0
	{
    hilf[ i ] = 0;
	}

for(int i = 0 ; i<array.length; i++) 					// Anzahl der Häufigkeit einer Zahl
{
    hilf[array[i]] = hilf[array[i]] + 1;
}
 
for(int i = 0 ; i<k+1 ; i++) 							// Addieren des Hilf-Arrays (bis zu welcher Position eine Zahl auftaucht)
{
    hilf[i] = hilf[i] + hilf[i + 1];
}

for(int i = array.length-1;i>=0 ; i--) 					// Sortieren in neues Array (von hinten nach vorne)
{
    neu[hilf[array[i]] - 1 ] = array[i];	// Werte werden ins neue Array geschrieben --> -1 weg?
    hilf[array[i]] = hilf[array[i]] - 1;	// um 1 vermindert
}

 }

}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Cromewell Tail-Rekursiver Counting Sort Allgemeine Java-Themen 20
R Formel Bubble Sort Allgemeine Java-Themen 1
M Bubble Sort Allgemeine Java-Themen 3
Aartiyadav Comparisons and Swapa in Bubble-sort Java Allgemeine Java-Themen 6
Kirby.exe Bucket Sort Allgemeine Java-Themen 7
Kirby.exe Merge Sort Allgemeine Java-Themen 11
A Heap-Sort Allgemeine Java-Themen 2
D Collections.sort funktioniert nicht in exportierten .class Dateien Allgemeine Java-Themen 10
J Array-List Bubble-Sort Allgemeine Java-Themen 12
M Arrays.sort Problem Allgemeine Java-Themen 2
F File.listFiles ohne .sort Allgemeine Java-Themen 6
B Input/Output Schneller Sort mit wenigen Zugriffen (oder was anderes?) Allgemeine Java-Themen 3
A External Sort - too many open files Allgemeine Java-Themen 6
X einfach verkettete Liste und Insertion Sort Allgemeine Java-Themen 3
S Array-Sort mittels Binärsuche Allgemeine Java-Themen 2
M Insertion sort Allgemeine Java-Themen 13
K Bound mismatch: The generic method sort(List<T>) of ty Allgemeine Java-Themen 4
T Sortierung mit Collections.sort() Allgemeine Java-Themen 4
L-ectron-X Problem mit Collections.sort() mit Java 1.5 Allgemeine Java-Themen 9
Fynn29 Liste sortieren ohne Array und ohne vorgegebene Sortierung Allgemeine Java-Themen 24
C Sortieren und Selektieren einer ArrayList<Point3D> Allgemeine Java-Themen 6
L allgemein Strings händisch in Liste sortieren Allgemeine Java-Themen 47
K Verbesserung der Laufzeit beim Sortieren von Einwohnern nach ihrem Geburtsjahr Allgemeine Java-Themen 0
Willi.We Array sortieren Allgemeine Java-Themen 5
L ArrayList sortieren Allgemeine Java-Themen 2
Monokuma String List nach Zahlen und Worten sortieren Allgemeine Java-Themen 9
MiMa ArrayList sortieren?? Allgemeine Java-Themen 5
C MySQL Tabellen sortieren. Allgemeine Java-Themen 33
Curtis_MC Collections Liste anhand mehrere Kriterien sortieren Allgemeine Java-Themen 6
B Java Mail: Emails sortieren? Allgemeine Java-Themen 5
G Liste (UsageStats) sortieren (Android) Allgemeine Java-Themen 5
FRI3ND Datentypen Date-Array sortieren - Text mitnehmen? Allgemeine Java-Themen 7
P Wertepaare sortieren Allgemeine Java-Themen 3
MiMa Sortieren nach Stellenangaben Allgemeine Java-Themen 7
T Collections ArrayList Sortieren Allgemeine Java-Themen 4
P Listen sortieren Allgemeine Java-Themen 1
U Methoden Algorithmus MergeSort String [ ] array sortieren programmieren Allgemeine Java-Themen 17
S Verkettete (Teil)Liste sortieren ( rekursiv bis n) Allgemeine Java-Themen 2
K Strings sortieren: 2 Kritieren Allgemeine Java-Themen 5
B Algortihmus zum linearen Sortieren Allgemeine Java-Themen 1
K ArrayList sortieren Allgemeine Java-Themen 16
heyluigi Random Integer Array Ausgabe nach Größe sortieren Allgemeine Java-Themen 6
H Liste sortieren anhand optionalem Property Allgemeine Java-Themen 3
2 Mehrere Uhrzeiten Sortieren Allgemeine Java-Themen 2
H Liste von Objekten generisch sortieren Allgemeine Java-Themen 0
Bluedaishi String Array mit Datum und Uhrzeit String sortieren Allgemeine Java-Themen 6
K Sortieren nach Vorgabe Allgemeine Java-Themen 6
S Erste Schritte Arrayliste alphabetisch sortieren mit Eingabe Allgemeine Java-Themen 9
L Sortieren von "Map<String, Object>" Allgemeine Java-Themen 2
M Sortieren und Leerzeichen Allgemeine Java-Themen 11
W Array Indizes sortieren Allgemeine Java-Themen 16
D Sortieren von Liste zu unperformant Allgemeine Java-Themen 6
E Array alphabetisch sortieren Allgemeine Java-Themen 1
5 Objekte Sortieren lassen Allgemeine Java-Themen 7
P Beim sortieren nullpointerexception Allgemeine Java-Themen 12
G Map nach key sortieren Allgemeine Java-Themen 14
T Array Sortieren (null Werte ans Ende) Allgemeine Java-Themen 2
Gossi Collections (Unbekannte) Liste Sortieren Allgemeine Java-Themen 10
S Int Values sortieren Allgemeine Java-Themen 7
S Sortieren nach Objekten Allgemeine Java-Themen 13
A 2D-array problem (sortieren) Allgemeine Java-Themen 6
T Liste mit GregorianCalendar-Objekten in List einlesen, mit Collection sortieren und ausgeben Allgemeine Java-Themen 3
D priority queue sortieren Allgemeine Java-Themen 10
G List<Person> sortieren Allgemeine Java-Themen 6
K Hashmap sortieren Allgemeine Java-Themen 6
H Problem beim Sortieren einer HashMap mit TreeSet Allgemeine Java-Themen 4
M ArrayList<String>, String häufigkeit sortieren Allgemeine Java-Themen 4
J Wie sortieren? Allgemeine Java-Themen 11
T Liste sortieren Allgemeine Java-Themen 6
K Strings sortieren (knifflig) Allgemeine Java-Themen 7
B JTable nach Icon sortieren Allgemeine Java-Themen 6
C ArrayList (mit Objekten) sortieren Allgemeine Java-Themen 12
J Map nach value sortieren Allgemeine Java-Themen 14
N Zahlen in Strings einer ArrayList sortieren Allgemeine Java-Themen 14
V ArrayList sortieren Allgemeine Java-Themen 7
S String-Array nach Datum sortieren Allgemeine Java-Themen 10
Developer_X Ein Array nach einem bestimmten Attribut sortieren Allgemeine Java-Themen 3
B Sortieren mit generischen Datentypen Allgemeine Java-Themen 3
C ArrayList anhand von zwei Attributen sortieren Allgemeine Java-Themen 4
O Sortieren von Telefonnummern Allgemeine Java-Themen 8
D JTabel sortieren nach mehreren kriterien Allgemeine Java-Themen 3
G Verschachtelte Treemaps, nach Value sortieren Allgemeine Java-Themen 11
K ArrayList nach bestimmtem Muster sortieren Allgemeine Java-Themen 3
I Vector mit Objekten sortieren,Videos mit JMF wiedergeben Allgemeine Java-Themen 6
S Koordinatentupel-Map sortieren?? Allgemeine Java-Themen 16
C ArrayList sortieren (mehrere Kriterien) Allgemeine Java-Themen 6
G ArrayList mit quicksort sortieren Allgemeine Java-Themen 9
Spot84 Vector nach Ressourcetyp sortieren Allgemeine Java-Themen 4
G sortieren von generics Allgemeine Java-Themen 10
Z Als Final deklarierte Klasse im Array sortieren Allgemeine Java-Themen 2
C ArrayList nach Datum sortieren Allgemeine Java-Themen 7
O ArrayList sortieren Allgemeine Java-Themen 8
G ArrayList mit Indices parallel sortieren Allgemeine Java-Themen 8
D HashMap sortieren Allgemeine Java-Themen 2
C Sortieren File[] Allgemeine Java-Themen 5
W [solved] Vector sortieren (Collection / Comparable?) Allgemeine Java-Themen 7
D LinkedList anhand einer long-Variable der Objekte sortieren Allgemeine Java-Themen 5
O Vektoren in Vektor sortieren aber mit Java 1.4 (!) Allgemeine Java-Themen 4
T TreeMap durch Comparator mit Generics sortieren Allgemeine Java-Themen 9
M ArrayList sortieren - HashMap mit sort_id vorhanden Allgemeine Java-Themen 2

Ähnliche Java Themen

Neue Themen


Oben