Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # GLAVNA FUNKCIJA KOJU POZIVAMO DA BI SORTIRALI NIZ
- function RadixSort!(A,izlaz)
- duzinaNiza=length(A)
- max=nadjiMax(A, duzinaNiza)
- #max=maximum(A.bodovi)
- delilac=1
- while max/delilac>0 #dok ne rastavimo i najveci broj vrtimo petlju
- countSort!(A,delilac,duzinaNiza,izlaz)
- delilac=delilac*10
- end
- end
- # FUNKCIJA KOJA SLUZI DA NADJE NAJVECI CLAN NIZA I VRATI VREDNOST TOG CLANA
- # DA BI POSLE ZNALI KOLIKO MAKSIMUM CIFARA IMAJU BROJEVI
- function nadjiMax(A, duzinaNiza)
- temp=typemin(Int)
- for i in 1:duzinaNiza
- if(A[i].bodovi>temp)
- temp=A[i].bodovi
- end
- end
- return temp;
- end
- # KORISTIMO COUNT SORT JER JE NAJEFIKASNIJI ALGORITAM ZA POTREBE OVOG ZADATKA
- function countSort!(A,delilac, duzinaNiza,izlaz)
- # izlaz=zeros(Int64,duzinaNiza)
- #izlaz=[]
- #for i in 1:duzinaNiza
- # push!(izlaz, Klub("", 0, 0, 0))
- #end
- izlaz = copy(A)
- brojac=zeros(Int64,10)
- #brojac=[]
- #for i in 1:10
- # push!(brojac,0)
- #end
- #println(duzinaNiza)
- for i in 1:duzinaNiza
- odvojen=trunc(Int, (A[i].bodovi/delilac)%10)
- brojac[odvojen+1]=brojac[odvojen+1]+1
- end
- for i in 2:10
- brojac[i]=brojac[i]+brojac[i-1]
- end
- #for i in 9:-1:1
- # brojac[i]=brojac[i]+brojac[i+1]
- #end
- for i in (duzinaNiza):-1:1
- odvojen = trunc(Int, (A[i].bodovi/delilac)%10)
- odvojenTemp = brojac[odvojen+1]
- izlaz[odvojenTemp]=A[i]
- brojac[odvojen+1]=brojac[odvojen+1]-1
- end
- for i in 1:duzinaNiza
- A[i]=izlaz[i]
- end
- end
- #FUNKCIJA ZADUZENA ZA ISPIS KODA
- function ispis(A,B)
- println()
- println("Nesortirani niz je ->")
- print(A)
- println()
- println()
- println("Sortirani niz je ->")
- print(B)
- end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement