Cod sursa(job #2741769)

Utilizator thinkphpAdrian Statescu thinkphp Data 18 aprilie 2021 21:19:11
Problema Sortare prin comparare Scor 40
Compilator py Status done
Runda Arhiva educationala Marime 0.79 kb
def combo( arr ):

    shrinkFactor = 1.3

    swapped = True

    n = len(arr)

    gap = n

    while gap > 1 or swapped is True:

          if gap > 1:
             gap = int (gap / shrinkFactor )

          print(gap)

          i = 0

          swapped = False

          while i + gap < n:

                if arr[ i ] > arr[ i + gap ]:

                   aux = arr[i]
                   arr[i] = arr[i + gap]
                   arr[i+gap] = aux
                   swapped = True

                i += 1
    return arr

def main():
    fin = open('algsort.in','r')
    fout = open('algsort.out','w')
    N = int(fin.readline().strip())
    arr = fin.readline().strip().split(" ")
    arr = [int(i) for i in arr]
    print(arr)
    arr = combo(arr)
    fout.write(' '.join(map(str, arr)))    
main()