ich sitze jetzt schon seit geraumer Zeit an einem Programm und ich komme einfach nicht weiter.
Die Aufgabe ist eine zweidimensional Matrix zu durchsuchen, welche die Eigenschaften hat x (i,j) <= x(i+1,j) sowie x(i,j) <= x(i,j+1) .
D.h. das Element darunter oder rechts davon ist mindestens gleich groß oder größer. Ich will nun einen Algorithmus anwenden der diese Eigenschaft ausnutzt, um ein Element zu finden.
Praktisch sieht das ganze im Moment so aus:
Code: Alles auswählen
#Initialisiere Beispielmatrix
mat = [None]*25
for i in range(25):
mat[i] = [None]*25
mat = [
[ 1, 2, 3, 4, 5],
[ 9, 10, 15, 20, 21],
[ 12, 19, 25, 31, 38],
[ 14, 22, 26, 34, 40],
[ 16, 24, 27, 36, 42],
[ 17, 28, 32, 39, 44],
]
#Main-Funktion
def run():
#Eingabe
eing = int(raw_input("Welches Element suchen sie?: "))
#Suche
search(eing)
#Ausgabe Matrix
for ir in range(6):
for ic in range(5):
print mat[ir][ic],
print
#Suchfunktion
def search(e):
r = 0
c = 0
while e != mat[r][c]:
if r < 24:
if e < mat[r+1][c]:
r += 1
elif c < 24:
if mat[r][c+1] > e:
r -= 1
c += 1
elif mat[r][c+1] < e:
c += 1
else:
r -= 1
else:
c += 1
r = 0
ausg = "Reihe: "+str(r)+" | Spalte: "+str(c)
print ausg
# Startroutine
if __name__ == '__main__':
run()
raw_input('[Enter] fuer Programmende druecken')
Ich mein...ja es ist bloß ein IndexError, aber ich verstehe nicht wo und warum?
Kann mir da jemand weiterhelfen?
Den Algorithmus möchte ich dann bitte selber anpassen und verbessern, also bitte verratet nicht zu viel !
Vielen Dank schonmal!
Viele Grüße,
Chillee