Codemonkeys: Triple im Array rotieren (rotateTriples)

Bei Postings zu Aufgabe Nr. x = 1..4 lassen Sie Ihr Betreff bitte mit "x: " beginnen, gefolgt von einer möglichst präzisen Überschrift, danke!

Moderator: Algorithmen und Datenstrukturen

Forumsregeln
Bei Postings zu Aufgabe Nr. x = 1..4 lassen Sie Ihr Betreff bitte mit "x: " beginnen, gefolgt von einer möglichst präzisen Überschrift, danke!
DerMathematiker
Neuling
Neuling
Beiträge: 8
Registriert: 27. Apr 2017 14:52

Codemonkeys: Triple im Array rotieren (rotateTriples)

Beitrag von DerMathematiker »

Hallo,
in meinen Aufgaben ist die Aufgabenstellung für die Aufgabe "rotateTriples" falsch. Diese lautet wie folgt:
Tripel im Array rotieren
Dieses Programm betrachtet drei Elemente und rotiert sie miteinander nach rechts.Dieser Vorgang wird für alle folgenden Tripel für das gesamte Array wiederholt.Die letzten Elemente eines Arrays, die zu keinem Tripel gehören, werden nicht bewegt. Die Komplexität ist Theta(n).Die Methode arbeitet inplace.

Beispiel (1,2,3,4,5,6,7,8) -> (3,1,2,6,4,5,7,8)

Implementieren sie die Methode rotateTriples gemäß dem folgenden Vertrag.

Parameter
Listobject<T>[] listist das Array auf dem die rotate-Operation ausgeführt werden soll.
Rückgabe
Listobject<T>[] : ist das Array vom Parameter list, welches wie oben beschrieben manipuliert wurde .
Randbedingungen
Ist list eine null-Referenz, dann wird eine null zurückgegeben geworfen.
Anforderungen an die Implementation
Parameter list wird inplace manipuliert.
Die Methode wird iterativ implementiert.
Die Komplexität beträgt maximal Theta(array.length).
Es sind keine Methoden- und Konstruktoraufrufe erlaubt.
Diese ist ziemlich exakt identisch zur Aufgabenstellung von "rotateSuccessiveTriples" und passt nicht zur Methodenbeschreibung:

Code: Alles auswählen

/**
		 * rotateTriples takes three indices of an array and rotates the indexed
		 * elements within the array. Element at position a moves to position b, b
		 * to c and c to a.
		 * 
		 * @return: return true if the array is rotated. Otherwise false.
		 * 
		 * @param: T[] array: 
		 * 			   array with elements of one arbitrary type and no "null"
		 *             fields
		 * @constraint: T[] array: this array has no null-references at any index and
		 *              only contains elements of the data type it was initialized
		 *              with.
		 * @assert:	T[] array: in this exercise there are neither null-references nor 
		 * 				wrong data types within the array. 
		 * @param: int a:
		 *             index of element to be rotated
		 * @constraint: int a: the index has to be within array.length - 1.
		 * @assert: int a: it is possible that the index is not within the array's length. 
		 *
		 * @param: int b:
		 *             index of element to be rotated
		 * @constraint: int b: the index has to be within array.length - 1.
		 * @assert: int b: it is possible that the index is not within the array's length.
		 * @param: int c:
		 *             index of element to be rotated
		 * @constraint: int c: the index has to be within array.length - 1.
		 * @assert: int c: it is possible that the index is not within the array's length.
		 */
		 
		 public boolean rotateTriples(Listobject<T>[] array, int a, int b, int c)
Demnach sollen nur drei bestimmte Objekte in diesem Array vertauscht werden, deren Indizes durch die Parameter übergeben werden.

Julian Prommer
Moderator
Moderator
Beiträge: 167
Registriert: 17. Apr 2013 15:48

Re: Codemonkeys: Triple im Array rotieren (rotateTriples)

Beitrag von Julian Prommer »

ist korrigiert
AuD Orga

Antworten

Zurück zu „AuD: Programmieraufgaben“