Python :: Aufgabe #4

11 Lösungen Lösungen öffentlich

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

Lösungen:

1x
vote_ok
von Dome (2100 Punkte) - 29.12.2012 um 00:14 Uhr
Quellcode ausblenden Python-Code
array = ([2,1,5,8,4])
print("Maximalwert : " , max(array))
print("Minimalwert : " , min(array))


Konsolenausgabe:

Maximalwert :  8
Minimalwert : 1
vote_ok
von 0 (0 Punkte) - 17.07.2015 um 00:35 Uhr
Quellcode ausblenden Python-Code
#!/usr/bin/python
#
#--------------------------------
#   title:      search or sort
#   author:     Excpt0r
#   licence:    use only with attribution, thanks! =)
#--------------------------------
#
# task: program a function which returns the min and max value
# from an integer array.
# solution: O(n) if you don't want to sort the array by yourself
# but you can also do bubblesort (very simple, but O(n^2) )
# or something similar. here is both!

def bubblesort(array):
    n = len(array)
    while True:
        newn = 1
        for i in range(n-1):
            if ( array[i] > array[i+1]):
                temp = array[i+1]
                array[i+1] = array[i]
                array[i] = temp
                newn = i+1
        n = newn
        if ( n <= 1):
            return (array[0],array[len(array)-1])
            break

def minmax(array):
    min, max = None, None
    for x in array:
        if (min == None and max == None):
            min = x
            max = x
        elif ( x < min ):
            min = x
        elif ( x > max ):
            max = x
    return (min,max)

def main():
    array1 = [13,12,11,10,9,8,7,6,5,4,3,2,1]
    array2 = [52,12,23,52,73,72,41,12,5,2,7,11,4124,635,123,15,1616,727,142,1532,3678,215]

    print "\n\tGet minima and maxima from array via search or sort! "

    print "\n Minimum Array 1: ", minmax(array1)[0]
    print " Maximum Array 1: ", minmax(array1)[1]
    print "\n Minimum Array 2: ", minmax(array2)[0]
    print " Maximum Array 2: ", minmax(array2)[1]

    print "\n Minimum Array 1, bubblesort: ", bubblesort(array1)[0]
    print " Maximum Array 1, bubblesort: ", bubblesort(array1)[1]

    print "\n Minimum Array 2, bubblesort: ", bubblesort(array2)[0]
    print " Maximum Array 2, bubblesort: ", bubblesort(array2)[1]

    return 0

if __name__ == "__main__":
    main()
vote_ok
von xy-no (250 Punkte) - 03.11.2015 um 14:37 Uhr
Quellcode ausblenden Python-Code
# coding: utf8

def minima_maxima(x):
    mini = min(x)
    maxi = max(x)
    return (mini, maxi)
            
x = [34,23,567,1]
(mini, maxi) = minima_maxima(x)
print "Minimum: " + str(mini) 
print "Maximum: " + str(maxi)

x = [2342,456,657,234,543]
(mini, maxi) = minima_maxima(x)
print "Minimum: " + str(mini) 
print "Maximum: " + str(maxi) 


Ausgabe:
Minimum: 1
Maximum: 567
Minimum: 234
Maximum: 2342
vote_ok
von _Mala_Fide_ (820 Punkte) - 23.12.2015 um 23:10 Uhr
Quellcode ausblenden Python-Code
#!/usr/bin/python
# -*- coding: utf-8 -*-

def min_max(array):
	min = array[0]
	max = array[0]
	for n in array:
		if n < max and n < min:
			min = n
		elif n > max:
			max = n
	print min, max

min_max(input("Gib das array ein: "))
vote_ok
von Nachbar (2820 Punkte) - 17.07.2016 um 13:36 Uhr
Quellcode ausblenden Python-Code
# -*- coding: utf-8 -*-

# Bubblesort
def minmax(a):
    x = len(a)
    while x > 0:
        for i in range(0, len(a)-1):
            if a[i] > a[i + 1]:
                tmp = a[i]
                a[i] = a[i + 1]
                a[i + 1] = tmp
        x = x - 1
    return (a[0], a[len(a)-1])


# Bsp
a1 = [1, 1, 0, 0, 0, 1, 0, 0]
a2 = [50, 1, 78, 24, 1000, 9, 345, 69, 5, 999]

print "Beispiel-Array 1:", a1
print ""
print "Minimalwert:", minmax(a1)[0]
print "Maximalwert:", minmax(a1)[1]
print ""
print "Beispiel-Array 2:", a2
print ""
print "Minimalwert:", minmax(a2)[0]
print "Maximalwert:", minmax(a2)[1]


Ausgabe:
Beispiel-Array 1: [1, 1, 0, 0, 0, 1, 0, 0]

Minimalwert: 0
Maximalwert: 1

Beispiel-Array 2: [50, 1, 78, 24, 1000, 9, 345, 69, 5, 999]

Minimalwert: 1
Maximalwert: 1000
vote_ok
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.

Quellcode ausblenden 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()
vote_ok
von crazyyzarc (160 Punkte) - 25.06.2017 um 18:17 Uhr
Quellcode ausblenden Python-Code
array = [634,3461,93,25,64,25,732]
print(max(array))
print(min(array))
vote_ok
von PythonIT (240 Punkte) - 19.08.2017 um 18:21 Uhr
Quellcode ausblenden Python-Code
# arraysort.py

def sortList(liste):
    laenge = len(liste)
    swapped = True
    while (swapped == True) or (laenge > 1):
        swapped = False
        if laenge > 1:
            laenge = int(float(laenge)/1.3)
        for i in range(0, (len(liste)-laenge)):
            if liste[i] > liste[i+laenge]:
                liste[i], liste[i+laenge] = liste[i+laenge], liste[i]
                swapped = True

    return liste

if __name__ == "__main__":
    eingabe = input("Gib eine Zahlenmenge (durch Leerzeichen getrennt) ein: ")
    liste = [int(x) for x in eingabe.split()]
    liste = sortList(liste)
    print("Kleinstes Element: " + str(liste[0]))
    print("Größtes Element: " + str(liste[-1]))
    
vote_ok
von Heady20006 (100 Punkte) - 25.02.2020 um 12:39 Uhr
Quellcode ausblenden Python-Code
import random

def _MinMax(listToSort: []):
    listToSort.sort()
    length = len(listToSort)
    return (str("Minimum:")+str(listToSort[0])+str("\nMaximum:")+str(listToSort[length-1]))

array1 = []
for i in range(25):
    randomizer = random.randrange(0,55)
    array1.append(randomizer)
print("Dieses Array wird benutzt:\n",array1)
print(_MinMax(array1))
input()
vote_ok
von lion91 (40 Punkte) - 23.03.2020 um 20:46 Uhr
Quellcode ausblenden Python-Code
from random import randrange
loop = True
while loop:
    def minmax(array):
        array2 = sorted(array)
        minimum = array2[0]
        maximum = array2[len(array)-1]
        return "Minimum:", minimum, "\tMaximum:", maximum, "\tListe:", array

    def listen_ersteller(groesse, anfang, ende):
        Array = []
        for i in range(groesse):
            zufallszahl = randrange(anfang, ende)
            Array.append(zufallszahl)
        return Array

    print("Gib die Groesse der Liste ein")
    g = int(input()) 
    print("Gib den Anfangswert für das Intervall ein")
    a = int(input())
    print("Gib den Endwert für das Intervall ein")
    e = int(input())

    print(*(minmax(listen_ersteller(g, a, e))))
vote_ok
von PythonLui (400 Punkte) - 07.04.2021 um 15:16 Uhr
Lösung 1:
Quellcode ausblenden Python-Code
# 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.

def min_max(array):
    """
    Sucht nach Min/ Max Wert in der Liste
    :param array: Liste aus der Min/ Max gesucht wird
    :return: min-Wert und max-Wert
    """
    return min(array), max(array)


array_1 = [5, 1, 200, 50, 3]
array_2 = [900, 700, 500, 300, 100]

# Doppelter Aufruf der Funktion min_max
x = min_max(array_1) + min_max(array_2)

# Ausgabe der Min- und Max-Werte
print(f"Das Minimum aus Array 1 lautet {x[0]} und das Maximum lautet {x[1]}")
print(f"Das Minimum aus Array 2 lautet {x[2]} und das Maximum lautet {x[3]}")


Ergebnis

Konsolenausgabe:


Das Minimum aus Array 1 lautet 1 und das Maximum lautet 200
Das Minimum aus Array 2 lautet 100 und das Maximum lautet 900



Lösung 2:
Quellcode ausblenden Python-Code
def min_max_bubblesort(array):
    """
    Sucht nach Min/ Max Wert in der Liste
    :param array: Liste aus der Min/ Max gesucht wird
    :return: min-Wert und max-Wert
    """
    durchlauf = len(array) - 1
    while durchlauf > 0:
        for n in range(1, durchlauf + 1):
            if array[n - 1] > array[n]:
                zwischen_speicher = array[n - 1]
                array[n - 1] = array[n]
                array[n] = zwischen_speicher
        durchlauf -= 1
    return array[0], array[-1]


array_1 = [5, 1, 200, 50, 3, 0]
array_2 = [900, 700, 500, 300, 100]

# Doppelter Aufruf der Funktion min_max
x = min_max_bubblesort(array_1) + min_max_bubblesort(array_2)

# Ausgabe der Min- und Max-Werte
print(f"Das Minimum aus Array 1 lautet {x[0]} und das Maximum lautet {x[1]}")
print(f"Das Minimum aus Array 2 lautet {x[2]} und das Maximum lautet {x[3]}")


Ergebnis

Konsolenausgabe:


Das Minimum aus Array 1 lautet 0 und das Maximum lautet 200
Das Minimum aus Array 2 lautet 100 und das Maximum lautet 900