Scala练习-二分查找

Posted Q博士

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Scala练习-二分查找相关的知识,希望对你有一定的参考价值。

源码

package day15

import day14.Utils

import scala.collection.mutable.ArrayBuffer

/**
  * Created by doctorq on 2017/6/19.
  * 二分查找
  */
object BinarySearch extends Utils with App 

  /**
    * 迭代实现
    *
    * @param unSorted
    * @param find
    */
  def search(unSorted: Array[Int], find: Int): Unit = 
    val size = unSorted.size
    if (size == 0) 
      println(s"empty array")
      return
    

    printlnArray(unSorted)
    var start = 0
    var end = size - 1
    while (start <= end) 
      val index = (start + end) / 2
      if (unSorted(index) > find) 
        end = index - 1
       else if (unSorted(index) < find) 
        start = index + 1
       else 
        println(s"$find in index : $index")
        return
      
    

    println(s"$find no found")
  

  val list = Array(1, 3, 4, 2, 5, 5, 6, 9, 3, 4, 4)

  search(list.sorted, 8)





以上是关于Scala练习-二分查找的主要内容,如果未能解决你的问题,请参考以下文章

Scala练习-顺序查找

Scala练习-哈希查找

数据结构和算法三个“二分查找”练习

二分查找模板和详细练习题

二分查找模板和详细练习题

Scala练习-二叉树查找