如何将得分从最高到最低排序

时间:2015-12-31 13:42:57

标签: python sorting

def sub_sort(array,low,high):
    key=array[low]
    while low<high:
        while low<high and array[high]>=key:
            high-=1
        while low<high and array[high]< key:
            array[low]=array[high]
            low+=1
            array[high]=array[low]
    array[low]=key
    return low
def quick_sort(array,low,high):
    if low<high:
        key_index=sub_sort(array,low,high)
        quick_sort(array,low,key_index)
        quick_sort(array,key_index+1,high)


score1=int(input(":"))
score2=int(input(":"))
score3=int(input(":"))


sort=[score1,score2,score3]
quick_sort(sort,0,len(sort)-1)
print(sort)

这是我的代码,到目前为止,它只对从最低到最高而不是从最高到最低的数字进行排序。

1 个答案:

答案 0 :(得分:0)

正如Ashalynd所说,你只需要在进行比较时改变标志。结果如下:

def sub_sort(array,low,high):
    key=array[low]
    while low<high:
        while low<high and array[high]<=key:
            high-=1
        while low<high and array[high]> key:
            array[low]=array[high]
            low+=1
            array[high]=array[low]
    array[low]=key
    return low

def quick_sort(array,low,high):
    if low<high:
        key_index=sub_sort(array,low,high)
        quick_sort(array,low,key_index)
        quick_sort(array,key_index+1,high)


score1=int(input(":"))
score2=int(input(":"))
score3=int(input(":"))


sort=[score1,score2,score3]
quick_sort(sort,0,len(sort)-1)
print(sort)

如果您不需要自己实施排序算法,那么更好的解决方案是:

score1 = int(input(":"))
score2 = int(input(":"))
score3 = int(input(":"))

data = [score1, score2, score3]

print sorted(data, reverse=True)