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)
这是我的代码,到目前为止,它只对从最低到最高而不是从最高到最低的数字进行排序。
答案 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)