python中的快速排序和選擇排序方法

class University:
        def __init__(self, name, numberoffaculity, numberofstudent):
            self.name = name
            self.numberoffaculity = numberoffaculity
            self.numberofstudent = numberofstudent


n = int(input())  # Number of universities that user wants to input
universities = []
for i in range(n):
    name = input()
    numberoffaculity = int(input())
    numberofstudent = int(input())
    uni = University(name, numberoffaculity, numberofstudent)
    universities.append(uni)

# Insert your code below this line


# Insert your code above this line

for uni in universities:
    print("%-10s %-10d %-10d"
          % (uni.name, uni.numberoffaculity, uni.numberofstudent))

我的目標是:程序得到數字1或2,如果它是1,列表將根據“numberoffaculity”通過快速排序方法從大到小進行排序和打印,如果它是2,列表將根據“numberofstudent”通過選擇排序方法從小到大進行排序和打印。

? 最佳回答:

這應該首先做到這一點,我添加了quick_sort和selection_sort函數以及一個鍵函數。

然后我根據用戶輸入給他們打電話

def quick_sort(array,key = lambda x:x):
    if len(array) < 2:
        return array
    else:
        pivot = array[0]
        less = [i for i in array[1:] if key(i) <= key(pivot)]
        greater = [i for i in array[1:] if key(i) > key(pivot)]
        return quick_sort(less,key) + [pivot] + quick_sort(greater,key)


def selection_sort(lst,key = lambda x:x):
    empty_lst = []
    x = len(lst) - 1
    while x >= 0:
        for i in range(len(lst)):
            if key(lst[i]) <= key(lst[0]):
                lst[0], lst[i] = lst[i], lst[0]
                # this part compares the number in first index and numbers after the first index.
        g = lst.pop(0)
        empty_lst.append(g)
        x -= 1
    return empty_lst


user_input = int(input())
if user_input==1:
    universities = quick_sort(universities,key = lambda x:x.numberoffaculity)[::-1]
elif user_input==2:
    universities = selection_sort(universities,key = lambda x:x.numberofstudent)
else:
    print("invalid sort input , expected 1 or 2 and got %s"%user_input)

如果您需要我澄清任何問題,請隨時發表評論,如果我的回答有助于您,請考慮將其標記為答案并進行投票:)

主站蜘蛛池模板: 一区二区三区波多野结衣| 国产亚洲福利精品一区二区| 国产一区二区三区夜色| 亚洲国产AV一区二区三区四区| 亚洲va乱码一区二区三区| 精品一区中文字幕| 人妻久久久一区二区三区| 精品女同一区二区三区在线| 国产一区精品视频| 国产手机精品一区二区| 亚洲日本一区二区三区在线不卡 | 久久精品一区二区三区中文字幕| 九九无码人妻一区二区三区| 亚洲蜜芽在线精品一区| 亚洲一区精品中文字幕| 久久精品动漫一区二区三区 | 韩国精品一区二区三区无码视频| 亚洲日韩精品一区二区三区| 中文字幕亚洲一区二区va在线| 东京热无码av一区二区| 国产激情一区二区三区| 精品国产不卡一区二区三区| 亚洲国产一区二区三区| 国产午夜精品一区二区| 久久久人妻精品无码一区| 久久无码一区二区三区少妇 | 伦理一区二区三区| 台湾无码AV一区二区三区| 亚洲永久无码3D动漫一区| 成人免费区一区二区三区| 久草新视频一区二区三区| 日韩精品无码免费一区二区三区 | 精品一区二区三区无码免费直播| 日本一区二区三区在线观看视频 | 色欲AV蜜桃一区二区三| 在线精品一区二区三区电影 | 加勒比无码一区二区三区| 无码人妻一区二区三区免费 | 精品国产精品久久一区免费式 | 国产一区二区成人| 无码少妇一区二区浪潮av|