2017-05-14 14 views
1

シェルソートを使用してリストをソートしたいのですが、逆のモードです。 並べ替えを降順にするには、コード内で何を変更する必要がありますか? これは私の作業コードです:逆ソートPythonのシェルソート

from timeit import default_timer as timer 
import resource 
start = timer() 
def shellSort(array): 
    gap = len(array) // 2 
    # loop over the gaps 
    while gap > 0: 
     # do the insertion sort 
     for i in range(gap, len(array)): 
      val = array[i] 
      j = i 
      while j >= gap and array[j - gap] > val: 
       array[j] = array[j - gap] 
       j -= gap 
      array[j] = val 
     gap //= 2 
with open('lista.txt', 'r') as f: 
    long_string = f.readline() 
    alist = long_string.split(',') 
shellSort(alist) 
f = open("shell.txt", "w") 
print >>f,(alist) 
print resource.getrusage(resource.RUSAGE_SELF).ru_maxrss/1000 
end = timer() 
print(end - start) 
f.close() 
print 'Shell\n' 

はありがとう:D

答えて

0

array[j-gap] < gap

それとも同じようreversed()方法を使用して、最終的なリストを反転: reversed(array)