Kann jemand diesen Pseudocode vom Quicksort auf Java umschreiben?


07.11.2021, 22:31

Also vom Programmieren mit Java habe ich keine Ahnung beherrsche Maschinensprache sehr gut und c über die Grundlagenheraus. Aber habe zurzeit ienen verschlüsselten Pc, der keine Programminstallation zulässt und leider nur ienen Browser von 98 hat und iene Javaumgebung, mit dem Browser kann ich leider keine online C Programme ausführen

fjkdkx  07.11.2021, 22:22

Warum lernst du nicht einfach Java?

hiduwh8 
Fragesteller
 07.11.2021, 22:24

Könnte ich, das Problem ist, dass ich mich eher mit Maschinensprache beschäftige und müsste parallel dazu Java lernen, was ich danach evt. machen wprde

fjkdkx  07.11.2021, 22:25

Wenn du Maschinensprache so magst ist es ja noch besser, dann kannst du gleich Bytecode schreiben oder nicht?

hiduwh8 
Fragesteller
 07.11.2021, 22:29

Ja eigentlich schon, aber nicht ausführen. Da ich einen verschlüsselten pc zurzeit habe, der nur iene Javaumgebung hat, sonst würde ich das auch mit c machen.

5 Antworten

Und was bezahlst du, wenn ich dir den Code in Java schreibe?

Ein studierter Mathematiker, der nicht dazu in der Lage ist ein bisschen zu googeln und ein wenig Code zu schreiben. Hauptsache studiert.

Um den Pseudocode in Java umzuschreiben, musst du kein Java können. Lediglich lesen musst du können. Online steht alles, z.B. wie man eine Funktion in Java schreibt, wie man eine Variable deklariert, if-Bedingungen, etc.

Also komm... Warum sollen andere deine Arbeit machen?


hiduwh8 
Fragesteller
 07.11.2021, 22:40

Hahahahahha, naja habe das nicht wirklich als Arbeit empfunden sind doch 10 Zeilen oder so. Ich habe nur leider keine C Umgebung da, nur Java und dachte mir dann vllt. schreibt das einer kurz um. Musst ja nciht antworten, also keiner, wenn man es nicht will. Dachte mir hal tgut 10 Zeilen, das macht man halt kurz.

Kann auch leider zurzeit nicht googlen, habe einen hoch verschlüsselten PC, bei dem nur eine Java Umgebung da ist und ein Browser, wo man die Website direkt eingeben muss, z. B. gutefrage.net. Sonst würde ich auch kurz das googlen, was die Syntax bei Java dafür ist un dnicht meine Zeit hier verschwenden

0
singularity2020  07.11.2021, 22:42
@hiduwh8

Der Pseudocode von Wikipedia besteht aus den Funktionen quicksort() und teile(), falls dir das nicht aufgefallen ist. Das sind deutlich mehr als 10 Zeilen. Und wenn es nur so "kurz" ist, dann mach es doch selber.

0
PeterKremsner  07.11.2021, 22:42
@hiduwh8

Ja dann gib zum Beispiel google.com ein, oder duckduckgo.com oder bing.com.

Auf irgendwelche Suchmaschinen wirst du schon zugriff haben, wenn du auf GF zugriff hast.

0
hiduwh8 
Fragesteller
 07.11.2021, 22:48
@PeterKremsner

Nein geh tnicht, Suchmaschinen werden abgelehnt, also werden gefiltert, schriebe ich z. B. google.de muss ich das Adminpw angeben, um auf die Seite zuzugreifen beid em Browser

0

Hier der Code von Wikipedia 1:1 nach Java transkribiert mit einem Beispielarray.

Kompilieren mit "javac Main.java". Danach ausführen mit "java Main".

Code:

import java.util.Arrays;

class Main {

    public static int[] daten = { 1, 8, 6, 3, 9, 2, 7, 5, 4 };

    public static void main(String[] args) {
        System.out.println("Array vor Sortierung:");
        System.out.println(Arrays.toString(daten));
        quicksort(0, daten.length - 1);
        System.out.println("Array nach Sortierung:");
        System.out.println(Arrays.toString(daten));
    }

    public static void tausche(int i, int j) {
        int temp = daten[i];
        daten[i] = daten[j];
        daten[j] = temp;
    }

    public static int teile(int links, int rechts) {
         int i = links;
         // Starte mit j links vom Pivotelement
         int j = rechts - 1;
         int pivot = daten[rechts];

         // solange i an j nicht vorbeigelaufen ist
         while (i < j) {
             // Suche von links ein Element,
             // welches groesser oder gleich dem
             // Pivotelement ist
             while (i < rechts && daten[i] < pivot) {
                 i++;
             }

             // Suche von rechts ein Element, welches
             // kleiner als das Pivotelement ist
             while (j > links && daten[j] >= pivot) {
                 j--;
             }

             if (i < j) {
                 tausche(i, j);
             }
         }

         // Tausche Pivotelement (daten[rechts])
         // mit neuer endgueltiger Position (daten[i])
         // und gib die neue Position des Pivotelements
         // zurueck, beende Durchlauf
         if (daten[i] > pivot) {
             tausche(i, rechts);
         }

         return i;
     }

    public static void quicksort(int links, int rechts) {
         if (links < rechts) {
             int teiler = teile(links, rechts);
             quicksort(links, teiler - 1);
             quicksort(teiler + 1, rechts);
         }
    }
}


hiduwh8 
Fragesteller
 07.11.2021, 23:29

Danke dir !

0

Wozu nicht einfach Java lernen wenn du es benötigst.

Das ist jedenfalls die weitaus nachhaltigere Variante als für jeden Algorithmus eine Person fragen zu müssen die ihn umsetzt.

Java ist ohnehin ähnlich zu C/C++ C# PHP usw. also da erschlägst du gleich mehrere Sachen wenn du die Grundlegende Syntax erlernst.


hiduwh8 
Fragesteller
 07.11.2021, 22:27

Nein ich beherrsche C eig. gut und Maschinensprache. Problem ist, dass ich keinen Pc habe, wo ich C ausführen kann gerade, da ich einen verschlüsselten Pc habe. Ich kann ledier auch keine online compiler von C nutzen, da der Browser der installiert ist von 98 ist. Ist ein sehr stark verschlüsselter Pc, habe hier nur eine Java Umgebung

0
PeterKremsner  07.11.2021, 22:32
@hiduwh8

C und Java Syntax sind derart ähnlich dass das im Grunde leicht ist, aber diese Arbeit wurde dir bereits abgenommen:

int[] numbers = new int[] {10,5,6,4,1};
Array.sort(numbers);

Nach dem Ausführen von Array.sort ist das Array numbers sortiert. Der von Java dafür verwendete Algorithmus ist dabei genau Quicksort.

0
hiduwh8 
Fragesteller
 07.11.2021, 22:36
@PeterKremsner

Jup, aber ich wollte eigentlich den Quicksort analyisieren

0
PeterKremsner  07.11.2021, 22:38
@hiduwh8

In wie fern Analysieren?

Das kannst du doch genau so am Pseudocode machen.

Außerdem liefert das Googeln nach Java Quicksort eben genau eine Implementierung des Quicksort für Java.

0
hiduwh8 
Fragesteller
 07.11.2021, 22:38
@PeterKremsner

Problem ist ich kann nicht googlen mit dem Pc, könntest Du den Lin k senden haha?

0
PeterKremsner  07.11.2021, 22:40
@hiduwh8

Du kannst GuteFrage verwenden aber nicht Googeln, also ganz kauf ich dir das jetzt nicht ab.

Wenn jetzt kommt das verwendest du vom Handy musst du dich wohl auf die Frage einstellen, ob du mit dem Handy nicht googeln kannst.

1
hiduwh8 
Fragesteller
 07.11.2021, 22:41
@PeterKremsner

Nein ich kann nur Internetseiten direkt angeben z. b. gutefrage.net, wikipedia.de etc. habe einen hoch verschlüsselten Pc gerade, der es nur eine Java Umgebung hat und einen Browser, wo man nur direkt die Internetseiten angeben kann, aber keine Suchmaschinen, wegen Internettracking oder ka, was hier eingestellt ist.

0

Guckst du mal hier:

https://www.happycoders.eu/de/algorithmen/quicksort/

Detaillierte Erklärung zum Quicksort samt Quelltext für Java. 5 Sekunden Google. :)


hiduwh8 
Fragesteller
 07.11.2021, 22:47

Danke, kann leider nciht googlen :) Habe einen verschlüsselten Pc, der nur einen browser hat, wo man selber die Internetseiten angeben muss.

0

Also ich habe Quicksort nie selber implementiert. Aber eigentlich müsstest du ein Beispiel in C finden können. Die Syntax müsste nahezu gleich sein wie die von Java. Als Mathematikstudent solltest du das hinkriegen.

Woher ich das weiß:Studium / Ausbildung – Informatik studiert und mit PCs & Technik beschäftigt

hiduwh8 
Fragesteller
 07.11.2021, 22:26

Hi, bin auch in Maschinensprache sehr fit, da ich mich damit hauptsächlich beschäftige. C kann ich leider auf dem Pc nicht ausführen, mit C kenne ich mich auch bisschen aus, muss jedoch das Programm mit nem Debugger ausführen und ich besitze zurzeit einen "verschlüsselten" Pc, der ledier keine Programminstallation zulässt. Würde sonst den mit c testen und für online compiler habe ich nicht den richitgen Browser leider

0