返回列表中最大的和第二大的元素,不允許使用Python內建的排序和最大函式。

jc_python發表於2020-12-22

返回列表中最大的和第二大的元素,不允許使用Python內建的排序和最大函式。

氣泡排序

# 氣泡排序
def item(ls):
	n = 0
	while n < len(ls):

		for i in range(len(ls) - 1):
			if ls[i] > ls[i + 1]:
				ls[i], ls[i + 1] = ls[i + 1], ls[i]
		n += 1
	return ls[-1], ls[-2]
print(item([321, 5345, 3466, 31, 213, 3223, 3, 423]))


# 第二種方法
# 先預設將第一個和第二個數比較賦值給第一大和第二大
# 從第三個數開始 跟第一大比較  如果有更大的 把之前最大值賦值給第二大值
def find_max_two(items:list):
    first,second = (items[0],items[1]) if items[0]>=item[1]\
    	else (items[1],items[0])
    for _ in range(2,len(items)):
        if items[_]>first:
            second = first
            first = items[_]
        elif items[_]>second:
            second = items[_]
    return first,second

相關文章