Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Themengebiete » Theoretische Informatik » Korrektheitsbeweis Selection-Sort » Antwort erstellen » Hallo Gast [Anmelden|Registrieren]

Antwort erstellen
Benutzername: (du bist nicht eingeloggt!)
Thema:
Nachricht:

HTML ist nicht erlaubt
BBCode ist erlaubt
Smilies sind erlaubt
Bilder sind erlaubt

Smilies: 21 von 33
smileWinkDaumen hoch
verwirrtAugenzwinkerngeschockt
Mit ZungeGottunglücklich
Forum Kloppebösegroßes Grinsen
TanzentraurigProst
TeufelSpamWillkommen
LehrerLOL HammerZunge raus
Hilfe 
aktuellen Tag schließen
alle Tags schließen
fettgedruckter Textkursiver Textunterstrichener Text zentrierter Text Hyperlink einfügenE-Mail-Adresse einfügenBild einfügen Zitat einfügenListe erstellen CODE einfügenPHP CODE farbig hervorheben
Spamschutz:
Text aus Bild eingeben
Spamschutz

Die letzten 3 Beiträge
JaJaSoIstDasMitDerUni Oh man die einrückungen verschwinden ja!

Verdammt :x
JaJaSoIstDasMitDerUni Zweite Variante

Das hier ist die zweite Variante:

void sort(Elements& e, const unsigned int left,
const unsigned int right) const
{

for (unsigned minIndex = 0, maxIndex = right; minIndex < maxIndexAugenzwinkern

{

Element min = e[minIndex];

Element max = e[maxIndex];

unsigned newMinIndex = minIndex + 1;

unsigned newMaxIndex = maxIndex;


for (unsigned index = newMinIndex; index <= newMaxIndexAugenzwinkern

{

Element value = e[index];


if (value <= min)

{

if (value < min)

{

min = value;

newMinIndex = minIndex;

e[index] = e[newMinIndex];

}

else

{

e[index] = e[newMinIndex];

++index;

}

e[newMinIndex] = value;

++newMinIndex;

}

else if (value >= max)

{

if (value > max)

{

max = value;

newMaxIndex = maxIndex;

}

e[index] = e[newMaxIndex];

e[newMaxIndex] = value;

--newMaxIndex;

}

else ++index;

}

minIndex = newMinIndex;

maxIndex = newMaxIndex;

}

}


Wenn ihr mir nur mit dem ersten helfen könnt wäre das auch schon total super.

lG
JaJaSoIstDasMitDerUni Korrektheitsbeweis Selection-Sort

Ja also im Fach Experimentelle Algorithmik haben wir unter Anderem die Aufgabe die Korrektheit des Algorithmus Selection-Sort zu beweisen. Glücklicherweise dürfen wir diese Aufgabenstellung oberflächlich beantworten, weswegen ich nochmal den Prof gefragt habe was das bedeutet und die folgenede Antwort bekam:

'Meine Empfehlung wäre, sich einfach folgende Frage zu stellen: "Wie könnte ich einen Kommilitonen, der sich zwar vielleicht fürs Programmieren interessiert, aber nicht besonders für Mathematik oder für Korrektheitsbeweise, ÜBERZEUGEN, dass der Algorithmus funktioniert?" Stellen Sie sich diese Situation einfach vor bzw. versuchen Sie sich einfach im Team gegenseitig von der Korrektheit zu überzeugen. Man könnte auch nur mit Beispielen arbeiten. Oder man könnte ordentlich beweisen, dass nach dem 1. Schritt ein bestimmtes Teilproblem gelöst wurde, und dann einfach nur noch sagen "Und der Rest geht dann analog". So was in die Richtung.'

Ich wäre euch im folgenden total dankbar wenn ihr mir schamlos einfach eine Lösung präsentiert, denn ich bin zwar im Stande diese im Nachhinein zu verstehen, aber Sie selber zu erzeugen vermag ich sie momentan leider nicht. Glücklicherweise ist uns um Hilfe zu fragen explizit erlaubt.

"Und übrigens: Es wurde auch nie verlangt, dass Sie sich alles selbst ausdenken müssen. Es ist erlaubt, Teilaspekte in einschlägiger Literatur nachzuschlagen und zu verwenden -- solange Sie es selbst verstanden haben und gut erklären können und die Quelle nennen."


Hier sind die Varianten von Selection-sort die wir verwenden (C):


void sort(Elements& e, const unsigned int left,
const unsigned int right) const
{

int min;

for (int i = left; i < right; i++)
{

min = i;

for (int j = i + 1; j <= right; j++)
{

if (e[j] < e[min]) min = j;

}

e.swap(min, i);

}

}


Danke im Vorraus und liebe Grüße!