Python :: Aufgabe #4 :: Lösung #6
11 Lösungen

#4
Funktion welche Minimum und Maximum aus einem Array zurückgibt
Anfänger - Python
von Gustl
- 07.12.2012 um 17:36 Uhr
Programmieren Sie eine Funktion welche aus einem Array von Integer-Elementen das Minimum und Maximum zurückgibt.
Als Übergabe-Parrameter wird das Array übergeben.
Testen Sie die Funktion mit 2 Abfragen, bzw. mit 2 verschiedenen Arrays.
Hilfestellung: Sortierverfahren - Wikipedia
Als Übergabe-Parrameter wird das Array übergeben.
Testen Sie die Funktion mit 2 Abfragen, bzw. mit 2 verschiedenen Arrays.
Hilfestellung: Sortierverfahren - Wikipedia
#6

von ah3n0bar6us (660 Punkte)
- 21.07.2016 um 02:24 Uhr
Liste wird mit dem RadixSort Algorithmus sortiert und dann das erste und letzte Element der Liste ausgegeben.
Python-Code

#!/usr/bin/env python3 from collections import defaultdict from random import randint def radixSort(listOfNumbers): """ sort a list without to compare the digits """ generateDic = defaultdict(list) result = [] resultNew = [] checkListLen = len(listOfNumbers) biggestChar = 0 for i in listOfNumbers: a = len(str(i)) if a > biggestChar: biggestChar = a for m in range(0,biggestChar): for i in range(0,checkListLen): try: stringDigits = str(listOfNumbers[i]) stringDigitsLen = len(stringDigits) if stringDigitsLen < m+1: generateDic["0"].append(listOfNumbers[i]) else: generateDic[stringDigits[stringDigitsLen-1-m]].append(listOfNumbers[i]) except IndexError: pass #print(generateDic) for j in range(0,10): if str(j) in generateDic: result.append(generateDic[str(j)]) for k in range(0,len(result)): for l in range(0,len(result[k])): resultNew.append((result[k])[l]) generateDic.clear() result, listOfNumbers, resultNew = [], resultNew, [] #print("SortierteListe nach 10^",m,": ",listOfNumbers) print("Sortiert:m ",listOfNumbers) return listOfNumbers def getMaxMin(getAList): print("Minimum: ",getAList[0],"Maximum",getAList[len(getAList)-1]) def randDigits(): a = [] for i in range(0,20): a.append(randint(0,1000)) print("Unsortiert: ",a) return a def main(): print("Erster Test: ") getMaxMin(radixSort(randDigits())) print("Zweiter Test: ") getMaxMin(radixSort(randDigits())) if __name__ == "__main__": main()
Kommentare:
Für diese Lösung gibt es noch keinen Kommentar
Seite 1 von 0
1