Cod sursa(job #2657172)

Utilizator contdeteste420Cont De Teste contdeteste420 Data 9 octombrie 2020 21:56:27
Problema Sortare prin comparare Scor 0
Compilator py Status done
Runda Arhiva educationala Marime 1 kb
import random

fin=open("algsort.in","r")
fout=open("algsort.out","w")

def quicksort(i,j):

    if i>=j:
        return


    pivot=random.randint(i,j)

    st=i
    dr=j

    valPivot=l[pivot]
    ipivot=0

   # print(l)
   # print(pivot)
   # print(valPivot)


    for k in range(i,j+1):
        l2[k]=0

    for k in range(i,j+1):
        if l[k]<valPivot:
            l2[st]=l[k]
            st+=1
        elif k!=pivot:
            l2[dr]=l[k]
            dr-=1


#    print(ipivot)
    for k in range(i,j+1):
        if l2[k]==0:
            ipivot=k
            break
   # print(ipivot)

    l2[ipivot]=valPivot

    for k in range(i,j+1):
        l[k]=l2[k]



  #  print(pivot)
   # print(newPivot)

    quicksort(i,ipivot-1)
    quicksort(ipivot+1,j)


s=fin.read()
st=s.split()




n=int(s[0])

l=[]

l2=[0]*n

for i in range(n):
    l.append(int(st[i+1]))

quicksort(0,n-1)

for i in l:
    print("{} ".format(i),end=' ',file=fout)