Advertisement
stev4

Untitled

Jan 21st, 2020
2,168
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Julia 1.87 KB | None | 0 0
  1. # GLAVNA FUNKCIJA KOJU POZIVAMO DA BI SORTIRALI NIZ
  2. function RadixSort!(A,izlaz)
  3.     duzinaNiza=length(A)
  4.     max=nadjiMax(A, duzinaNiza)
  5.    #max=maximum(A.bodovi)      
  6.     delilac=1
  7.  
  8.     while max/delilac>0 #dok ne rastavimo i najveci broj vrtimo petlju
  9.         countSort!(A,delilac,duzinaNiza,izlaz)
  10.         delilac=delilac*10
  11.     end
  12. end
  13.  
  14.  
  15. # FUNKCIJA KOJA SLUZI DA NADJE NAJVECI CLAN NIZA I VRATI VREDNOST TOG CLANA
  16. # DA BI POSLE ZNALI KOLIKO MAKSIMUM CIFARA IMAJU BROJEVI
  17. function nadjiMax(A, duzinaNiza)
  18.     temp=typemin(Int)
  19.  
  20.         for i in 1:duzinaNiza
  21.             if(A[i].bodovi>temp)
  22.                 temp=A[i].bodovi
  23.             end
  24.         end  
  25.    
  26.     return temp;
  27. end
  28.  
  29. # KORISTIMO COUNT SORT JER JE NAJEFIKASNIJI ALGORITAM ZA POTREBE OVOG ZADATKA
  30. function countSort!(A,delilac, duzinaNiza,izlaz)
  31.  
  32. #    izlaz=zeros(Int64,duzinaNiza)
  33.     #izlaz=[]
  34.     #for i in 1:duzinaNiza
  35.     #    push!(izlaz, Klub("", 0, 0, 0))    
  36.     #end
  37.     izlaz = copy(A)
  38.     brojac=zeros(Int64,10)
  39.     #brojac=[]
  40.     #for i in 1:10
  41.     #    push!(brojac,0)
  42.     #end
  43.     #println(duzinaNiza)
  44.     for i in 1:duzinaNiza
  45.         odvojen=trunc(Int, (A[i].bodovi/delilac)%10)
  46.         brojac[odvojen+1]=brojac[odvojen+1]+1
  47.     end
  48.        
  49.     for i in 2:10
  50.         brojac[i]=brojac[i]+brojac[i-1]
  51.     end
  52.     #for i in 9:-1:1
  53.     #    brojac[i]=brojac[i]+brojac[i+1]
  54.     #end
  55.  
  56.     for i in (duzinaNiza):-1:1
  57.         odvojen = trunc(Int, (A[i].bodovi/delilac)%10)
  58.         odvojenTemp = brojac[odvojen+1]
  59.         izlaz[odvojenTemp]=A[i]
  60.         brojac[odvojen+1]=brojac[odvojen+1]-1
  61.     end
  62.  
  63.     for i in 1:duzinaNiza  
  64.         A[i]=izlaz[i]
  65.     end
  66. end
  67.  
  68. #FUNKCIJA ZADUZENA ZA ISPIS KODA
  69. function ispis(A,B)
  70.     println()
  71.     println("Nesortirani niz je ->")
  72.     print(A)
  73.     println()
  74.     println()
  75.     println("Sortirani niz je ->")
  76.     print(B)
  77. end
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement