我正在進行離散數學課程。在本課程中,我們的書談到了不同的排序算法。爲了更好地理解這一點,我嘗試將這些算法之一轉換爲python,但是該算法返回一些意外的輸出,並且我沒有意識到我的錯誤在哪裏。如果你願意,請看下面。任何幫助深表感謝。尋找最大回報意想不到的輸出
### Find max ###
# A = Array of values to find max from.
# n = Length of array A. Can also be described as the number of loops the array will perform
A = [100, 3, 7, 15, 17, 19, 25, 31, 32, 8, 21, 5, 51, 64, 63]
n = len(A) #len: python command to retrieve length of an array.
def find_max(A, n):
max = 0
for i in range(0, n):
if A[i] > max:
max = i
return max
### Input A and N in the algorithm and print the output ###
print find_max(A, n)
這裏預期的輸出應爲0,因爲在陣列中的第一個條目具有最高的值。但是腳本返回14,這是數組中最高的鍵。
我想python腳本儘可能類似僞代碼。簡單地說,讓我們的新生比較容易與彼此進行比較。這是從我們的書的僞代碼:
find_max(A, n)
max = 0
for i = 0 to n-1
if (A[i] > A[max]) max = i
return max
'如果A [1]>最大: 最大= A [1]'。將指數與數值混合在一起。 –
你可以使用'for a in a:如果a> max:max = a'來避免玩索引。當然內置'max'函數在所有情況下都是最好的。 –
@ Jean-FrançoisFabre謝謝你的回答。你想介紹一下你的評論嗎?我不確定在這方面指數是指什麼。 – n0rd