Guest User

Untitled

a guest
Dec 10th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.04 KB | None | 0 0
  1. import UIKit
  2.  
  3. func countOccurance<T: Comparable>(array: [T], searchValue: T) -> Int {
  4.  
  5. func rightBoundary() -> Int {
  6. var lowerBound = 0
  7. var upperBound = array.count
  8.  
  9. while lowerBound < upperBound {
  10. let midPoint = lowerBound + (upperBound-lowerBound)/2
  11. if searchValue < array[midPoint] {
  12. upperBound = midPoint
  13. } else {
  14. lowerBound = midPoint + 1
  15. }
  16. }
  17. return lowerBound
  18. }
  19.  
  20. func leftBoundary() -> Int {
  21. var lowerBound = 0
  22. var upperBound = array.count
  23.  
  24. while lowerBound < upperBound {
  25. let midPoint = lowerBound + (upperBound-lowerBound)/2
  26. if searchValue > array[midPoint] {
  27. lowerBound = midPoint + 1
  28. } else {
  29. upperBound = midPoint
  30. }
  31. }
  32. return lowerBound
  33. }
  34. return rightBoundary() - leftBoundary()
  35. }
  36.  
  37. let numbers = [2,3,4,6,7,8,10]
  38. let value = countOccurance(array: numbers, searchValue: 5)
Add Comment
Please, Sign In to add comment