2017-05-14 1 views
1

쉘 정렬을 사용하지만 역방향 모드로 목록을 정렬하려고합니다. 내림차순으로 정렬하려면 코드에서 무엇을 변경해야합니까? 역순 정렬 파이썬에서 쉘 정렬

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)