Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import UIKit
- func countOccurance<T: Comparable>(array: [T], searchValue: T) -> Int {
- func rightBoundary() -> Int {
- var lowerBound = 0
- var upperBound = array.count
- while lowerBound < upperBound {
- let midPoint = lowerBound + (upperBound-lowerBound)/2
- if searchValue < array[midPoint] {
- upperBound = midPoint
- } else {
- lowerBound = midPoint + 1
- }
- }
- return lowerBound
- }
- func leftBoundary() -> Int {
- var lowerBound = 0
- var upperBound = array.count
- while lowerBound < upperBound {
- let midPoint = lowerBound + (upperBound-lowerBound)/2
- if searchValue > array[midPoint] {
- lowerBound = midPoint + 1
- } else {
- upperBound = midPoint
- }
- }
- return lowerBound
- }
- return rightBoundary() - leftBoundary()
- }
- let numbers = [2,3,4,6,7,8,10]
- let value = countOccurance(array: numbers, searchValue: 5)
Add Comment
Please, Sign In to add comment