【python滴滴出行】整数无序数组求第K大数?

Python024

【python滴滴出行】整数无序数组求第K大数?,第1张

题目:给定无序整数序列,求其中第K大的数,例如{45,67,33,21},第2大数为45。

输入描述:

输入第一行为整数序列,数字用空格分隔,如:45 67 33 21

输入第二行一个整数K,K在数组长度范围内,如:2

输出描述:

输出第K大的数,本例为第2大数:45

code:

def findSmallKnum(arr, k):

    for i in range(k):

        for j in range(i + 1, len(arr)):

            if arr[i] <arr[j]:

                arr[i], arr[j] = arr[j], arr[i]

    return arr[k-1]

if __name__ == "__main__":

    arr = list(map(int, input().split()))#[4, 3, 6, 7,1, 3]

    K = int(input())

    print(findSmallKnum(arr, K))

from random import sample

b=sample([j for j in range(1001)],10)#1000以内的任意10个整数组成列表

print(f"{b}\n其中最大值是:\t{max(b)}\n最小值是:\t{min(b)}")#打印列表及找出列表中最大值和最小值