Skip to content
This repository has been archived by the owner on Jul 10, 2024. It is now read-only.

Commit

Permalink
Ternary search in Scala (#5774)
Browse files Browse the repository at this point in the history
Co-authored-by: Riyazul555 <riyazulislam2003@gmail.com>
  • Loading branch information
Riyazul555 and MdRiyazulIslam committed Jul 7, 2024
1 parent baa14e3 commit 79034b9
Showing 1 changed file with 44 additions and 0 deletions.
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
object TernarySearch {
def ternarySearch(array: Array[Int], value: Int): Int = {
var left = 0
var right = array.length - 1

while (left <= right) {
val partitionSize = (right - left) / 3
val mid1 = left + partitionSize
val mid2 = right - partitionSize

if (array(mid1) == value) {
return mid1
}

if (array(mid2) == value) {
return mid2
}

if (value < array(mid1)) {
right = mid1 - 1
} else if (value > array(mid2)) {
left = mid2 + 1
} else {
left = mid1 + 1
right = mid2 - 1
}
}

-1
}

def main(args: Array[String]): Unit = {
val sortedArray = Array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10)
val valueToSearch = 7

val result = ternarySearch(sortedArray, valueToSearch)

if (result != -1) {
println(s"Element found at index $result")
} else {
println("Element not found in the array")
}
}
}

0 comments on commit 79034b9

Please sign in to comment.