#better——找最大值和最小值
#①找最大值:总比较次数为n-1次
def max(list1):
max = list1[0]
long = len(list1)
for i in range(1,long):
if list1[i] > max:
max = list1[i]
return max
li = [2,3,7,4,1,8]
print(max(li))
# ②找最小值:方法同上
# ③同时找最大值和最小值:总比较次数最多3*(n/2)次
def both(list1):
long = len(list1)
max = min = n =0
if long % 2 == 0:#当列表长度是偶数时:把前两个数设为最大值和最小值的初值,保证后面的数是两两比较
n = 2
max = list1[0]
min = list1[1]
else:#当列表长度为奇数时:把第一个数设为最大值和最小值的初值
max = min = list1[0]
n = 1
for i in range(n,long-1):
if list1[i] > list1[i+1]:
if list1[i] > max:
max = list1[i]
if list1[i+1] < min:
min = list1[i+1]
else:
if list1[i+1] > max:
max = list1[i+1]
if list1[i] < min:
min = list1[i]
print(max,min)
both(li)
print('-----2both------')
def both2(list1):
max = min = list1[0]
for i in list1[1:]:
if i > max:
max = i
else:
if i < min:
min = i
print(max,min)
both2(li)