Advertisement
skalarr

pejst

Apr 30th, 2022
1,068
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Julia 3.21 KB | None | 0 0
  1. #5. cas
  2. #Kreiranje niza sa zadatim brojem elemenata, npr.
  3. # niz = Array{Int64}(undef, 10)
  4. #Kreiranje niza sa nula elemenata, npr.
  5. # niz = []
  6. #M = typemax(Int64), M postaje najveći ceo broj
  7.  
  8. # Insertion sort
  9. # poredimo 2. element sa 1. i ako je 1. veci od 2. menjamo mesta
  10. # i to radi sa celim nizom, poredi sledeci sa prethodnim
  11. # i ako ti je prethodni veci od sledeceg, menjaju im se mesta
  12. # i tako proverava ceo niz :)
  13.  
  14.     1 6 4 6 5 8 2 9 1
  15. j = 1 2 3 4 5 6 7 8 9
  16. i = 1 2 3 4 5 6 7 8 9
  17. #PSEUDOKOD
  18. for j = 2 to length(A)
  19.      key = A[j]
  20.      i = j-1
  21.      while i>0 and A[i]>key #guranje elemenata, A[i]<key ovo ti je
  22.                             #za opadajuce sortiranje
  23.     A[i+1] = A[i]
  24.     i -= 1
  25.      end
  26.      A[i+1] = key
  27.     end
  28. end
  29.  
  30. #redovan kod
  31. function insertionSort!(A)
  32.     for j in 2:length(A)
  33.     key = A[j]
  34.     i = j-1
  35.     while(i>0 && A[i]>key)
  36.     A[i+1] = A[i]
  37.     i = i-1
  38.     end
  39.     A[i+1] = key
  40.     end
  41.     end
  42. end
  43.  
  44. # Insertion sort, strukture
  45. # Primer 5.1. Modifikovati Insertion Sort algoritam tako da
  46. # sortira niz struktura studenti prema broju indeksa.
  47.  
  48. struct Student
  49.     ime::String
  50.     brojIndeksa::Int
  51. end
  52. # f-ja za ispis svih studenata
  53. function ispisStudenata(studenti)
  54.         for i in 1:length(studenti)
  55.         println("$i. $(studenti[i].ime), $(studenti[i].brojIndeksa)");
  56.     end
  57. end
  58.  
  59. # kreiramo niz
  60. #za pravljenje niza mozes da koristis i onaj drugi nacin
  61. #sa praznim array i onda dodajest student[1]......
  62. studenti = []
  63. push!(studenti,Student("Marko Markovic", 13))
  64. push!(studenti,Student("Nikola Tomic", 8))
  65. push!(studenti,Student("Srdjan Knezevic", 5))
  66. push!(studenti,Student("Vanja Kovacevic", 17))
  67. push!(studenti,Student("Nenad Nikolic", 16))
  68. push!(studenti,Student("Ivana Ivanovic", 2))
  69. push!(studenti,Student("Branislav Tomic", 9))
  70. push!(studenti,Student("Stefan Zivkovic", 3))
  71.  
  72. function manji(student1, student2)
  73.     return student1.brojIndeksa < student2.brojIndeksa;
  74. end
  75.  
  76. function insertionSortStudenti!(studenti, jeManji)
  77.     for j = 2:length(studenti);
  78.     key = studenti[j];
  79.     i = j-1;
  80.     while(i>0 && jeManji(key, studenti[i]))
  81.     studenti[i+1] = studenti[i];
  82.     i = i-1;
  83.     end
  84.     studenti[i+1] = key;
  85.     end
  86. end
  87.  
  88. #pokretanje sortiranja
  89. println("Nesortirani spisak studenata:\n")
  90. ispisStudenata(studenti)
  91. insertionSortStudenti!(studenti, manji)
  92. println("Sortirani spisak studenata:\n")
  93. ispisStudenata(studenti)
  94. # Napomena: Na početku skripte neophodno je uvesti sve korišćene
  95. #fajlove u kojima se nalaze strukture podataka i funkcije,
  96. #koristeći naredbu include()
  97.  
  98. # Merge sort
  99. #vizuelno na YT, geeksforgeeks(zelen)
  100.     L          R
  101.    2 3 (max)| 4 5 (max) #min pisemo za opadajuci niz
  102.                         #max i min su pomocni clanovi
  103. da li je 2>4
  104. nije, pa smestamo 2 na pocetak niza
  105. 2
  106. da li je 3>4
  107. nije pa smestamo 3 posle 2
  108. 2 3
  109. da li je max>4
  110. jeste, max je uvek veci
  111. stavljamo 4 posle 3
  112. 2 3 4
  113. da li je max>5
  114. jeste, max je uvek veci
  115. smestamo 5 posle 4
  116. 2 3 4 5
  117. #imamo levu i desnu stranu niza (p i r) i sredinu q
  118. #leva polovina ide od p do q
  119. #desna polovina ide od q+1 do r
  120.  
  121. #poredimoo prvi element u levoj polovini sa prvim elementom
  122. #desne polovine, ako je manji, smestamo ga u niz i rekurzija
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement