**如下:
# -*- 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次比較,整個...