Answered step by step
Verified Expert Solution
Link Copied!

Question

1 Approved Answer

In der Vorlesung wurder der Algorithmus Mergesort bereits iterativ implementiert. In dieser Aufgabe sollen Sie ihn auf rekursive Weisestinsetzen. Implementieren Sie dazu die Funktion mergesort

In der Vorlesung wurder der Algorithmus Mergesort bereits iterativ implementiert. In dieser Aufgabe sollen Sie ihn auf rekursive Weisestinsetzen. Implementieren Sie dazu die Funktion mergesort im gegebenen Coderahmen. Die Funktion hat folgende Signatur:
void mergesort(int values[], int first_index, int last_index)
Die Funktion soll den Bereich von first_index bis last_index durch Aufruf von sich selbst sortieren und dabei die bekannte Funktion merge nutzen. Zur Erinnerung: Die Funktion merge nimmt die fnf Argumente a,b,c,la und lb entgegen. a und b sind sortierte Felder der Lngen la bzw. Ib.c ist ein (leeres) Feld, in das das Ergebnis des Zusammenfgens geschrieben wird.
Wichtig: Implementieren Sie die Funktion rekursiv! Dies bedeutet, dass die Funktion sich selbst aufruft, anstatt ber das Feld zu iterieren. Setzten Sie die Funktion durch Implementieren der folgenden Schritte bzw. Regeln um:
Falls der Bereich die Lnge 1 hat, braucht er nicht weiter unterteilt zu werden und ist automatisch sortiert.
Im Rekursionsschritt sollten Sie den zu sortierenden Bereich in zwei Hlften teilen und auf beiden einen rekursiven Aufruf starten.
Sobald Sie sicher sind, dass die zwei Bereiche sortiert sind, knnen sie einfach die Funktion merge nutzen, um sie zusammenzufgen.
Tipp: Falls Sie Schwierigkeiten haben, auf eine Lsungsidee zu kommen, entwickeln Sie zunchst einen Algorithmus fr ein Feld der Lnge 1. Erweitern Sie ihn anschlieend so, dass er mit einem Feld der Lnge 2 funktioniert. Erweitern Sie dann fr Felder der Lnge 4 und stellen anschlieend sicher, dass auch Felder der Lnge 3 sortiert werden. berlegen Sie dann, ob und ggf. was noch fr beliebig lange Felder fehlt und welche der o. g. Schritte noch noch umgesetzt werden mssen.
Wichtig:
Verwenden Sie die an diese Aufgabe angehngte Datei mergesort_recursive.cpp. Implementieren Sie die Funktion darin und geben sie anschlieend ab.
Achtung: Das bestehen der Testflle in der main-Funktion garantiert nicht, dass Ihre Lsung richtig ist. Wir werden fr die Bewertung noch weitere Flle testen.
Sie drfen davon ausgehen, dass first_index = last_index gilt.
Ihr Code darf keine Eingaben entgegennehmen oder Ausgaben erzeugen.
Sie drfen den Coderahmen nur an den markierten Stellen und innerhalb der main-Funktion verndern.
Stellen Sie sicher, dass Ihr Programm die o.g. Signaturen verwendet.
image text in transcribed

Step by Step Solution

There are 3 Steps involved in it

Step: 1

blur-text-image

Get Instant Access to Expert-Tailored Solutions

See step-by-step solutions with expert insights and AI powered tools for academic success

Step: 2

blur-text-image

Step: 3

blur-text-image

Ace Your Homework with AI

Get the answers you need in no time with our AI-driven, step-by-step assistance

Get Started

Recommended Textbook for

MySQL Crash Course A Hands On Introduction To Database Development

Authors: Rick Silva

1st Edition

1718503008, 978-1718503007

More Books

Students also viewed these Databases questions