Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- var iterations: Int = 0
- fun main(args: Array<String>) {
- var list = listOf(1, 3, 5, 8, 12, 13, 22)
- list = list.sorted()
- println("enter the target number!")
- val target = readLine()!!.toInt()
- if (target % 2 == 1) println("No pair possible, number odd!")
- for (element in list){
- iterations++
- if (element > target) break
- val remaining = target - element
- if (binarySearch(list, remaining)) {
- println("Found pair = $element + $remaining = $target, $iterations iterations")
- return
- }
- }
- println("Couldn't find a pair, $iterations iterations")
- }
- // from geeksforgeeks.org
- fun binarySearch(arr: List<Int>, x: Int): Boolean {
- var l = 0
- var r = arr.size - 1
- while (l <= r) {
- iterations++
- val m = l + (r - l) / 2
- // Check if x is present at mid
- if (arr[m] == x)
- return true
- // If x greater, ignore left half
- if (arr[m] < x)
- l = m + 1
- else
- r = m - 1// If x is smaller, ignore right half
- }
- // if we reach here, then element was
- // not present
- return false
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement