Advertisement
Guest User

Untitled

a guest
May 25th, 2015
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.14 KB | None | 0 0
  1. #encoding:utf-8
  2. def sirasiz_buyuk_sayi_arama(array,a) # a => aranacak elemanın büyüklük sırası
  3. pivot = array.sample
  4. rightarray = []
  5. leftarray = []
  6. if a == array.size
  7. return array.max
  8. end
  9. for i in array
  10. if pivot < i
  11. rightarray << i
  12. elsif pivot >= i
  13. leftarray << i
  14. end
  15. end
  16.  
  17. if leftarray.size >= a
  18. if leftarray.uniq.length ==1 && leftarray.size > 1
  19. print "1\n"
  20. return pivot
  21. end
  22. return sirasiz_buyuk_sayi_arama(leftarray,a)
  23.  
  24. elsif leftarray.size < a
  25. return sirasiz_buyuk_sayi_arama(rightarray,a - leftarray.size)
  26. end
  27. if leftarray.size +1 == a
  28. return pivot
  29. end
  30. end
  31.  
  32. #+++++++++++++++++++++++++++MAİN+++++++++++++++
  33. array = ARGV[0].split(",").map(&:to_i)
  34. if array.size % 2 == 1
  35. print "Bu dizinin medyan değeri:#{sirasiz_buyuk_sayi_arama(array,array.size/2 +1)}\n"
  36. else
  37. a = sirasiz_buyuk_sayi_arama(array,array.size/2)
  38. b = sirasiz_buyuk_sayi_arama(array,array.size/2 +1)
  39. print "Bu dizinin medyan değeri:#{(a+b)/2.to_f}\n"
  40. end
  41. #[17,46,17,68,5,109,78,43,55,55,28] örnek dizi
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement