Python實現同時找最大最小值(優化版本)

2021-07-09 12:37:42 字數 632 閱讀 3978

**如下:

# -*- coding:utf-8 -*-

#其中假設n是奇數

#如果n是偶數的話,把li[0],li[1]先比較,分別初始為最小最大值。

def minmaximum(li):

'''本函式的功能是找到列表li中的最大值和最小值'''

min = li[0]

max = li[0]

for i in range(1,len(li),2):

if li[i] > li[i+1]:

if li[i] > max:

max = li[i]

if li[i+1] < min:

min = li[i+1]

else:

if li[i] < min:

min = li[i]

if li[i+1] > max:

max = li[i+1]

return min,max

li = [1,2,8,4,0,-2,5]

print minmaximum(li)

演算法思路:先把列表中的第乙個元素賦值給最大最小初始值,然後再一對一對比較,把對中較大的同max比,較小的同min比,直到結束,可得出最大最小值。

同時找最大最小值

題目定義 給定乙個大小為n的陣列,無序,找到其中的最大值和最小值,要求元素間的比較次數盡可能少。這道題出自 演算法導論 創新工場2016校招筆試也考了這道題。以下摘自 演算法導論 事實上,我們只需要最多3 n 2 次比較就可以同時找到最小值和最大值。具體的方法是記錄已知的最大值和最小值,然後對輸入元...

PYTHON 找鞍點, 行上最大 列上最小

找鞍點 乙個矩陣元素的 鞍點 是指該位置上的元素值在該行上最大 在該列上最小。本題要求編寫程式,求乙個給定的n階方陣的鞍點。輸入第一行給出乙個正整數n 1 n 6 隨後n行,每行給出n個整數,其間以空格分隔。輸出在一行中按照 行下標 列下標 下標從0開始 的格式輸出鞍點的位置。如果鞍點不存在,則輸出...

同時尋找序列的最大最小值

問題描述 給定乙個長度為n n 2 的無序正整數序列ary,要求同時找到其中最大和最小值元素,並返回其和。分析 將最大值max和最小值min看成一對 mix,min 每次從序列中成對地取出兩個元素,將其中較小者與min比較並更新,將其中較大者與max必將並更新,這樣處理每一對元素只需要3次比較,整個...