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
