Advertisement
Guest User

Untitled

a guest
Nov 9th, 2018
364
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Kotlin 1.18 KB | None | 0 0
  1. var iterations: Int = 0
  2. fun main(args: Array<String>) {
  3.     var list = listOf(1, 3, 5, 8, 12, 13, 22)
  4.     list = list.sorted()
  5.  
  6.     println("enter the target number!")
  7.     val target = readLine()!!.toInt()
  8.     if (target % 2 == 1) println("No pair possible, number odd!")
  9.  
  10.     for (element in list){
  11.         iterations++
  12.         if (element > target) break
  13.         val remaining = target - element
  14.         if (binarySearch(list, remaining)) {
  15.             println("Found pair = $element + $remaining = $target, $iterations iterations")
  16.             return
  17.         }
  18.     }
  19.     println("Couldn't find a pair, $iterations iterations")
  20. }
  21.  
  22. // from geeksforgeeks.org
  23. fun binarySearch(arr: List<Int>, x: Int): Boolean {
  24.     var l = 0
  25.     var r = arr.size - 1
  26.     while (l <= r) {
  27.         iterations++
  28.         val m = l + (r - l) / 2
  29.  
  30.         // Check if x is present at mid
  31.         if (arr[m] == x)
  32.             return true
  33.  
  34.         // If x greater, ignore left half
  35.         if (arr[m] < x)
  36.             l = m + 1
  37.         else
  38.             r = m - 1// If x is smaller, ignore right half
  39.     }
  40.  
  41.     // if we reach here, then element was
  42.     // not present
  43.     return false
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement