package Ġcom . coding blocks Ċ Ċ object ĠSearch ing Ġ{ ĊĊĠĠĠ Ġ// ĠLinear Ġsearch ĊĠĠĠ Ġfun Ġlinear ( nums : ĠInt Array , Ġitem : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġfor Ġ( i Ġin Ġnums . indices ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( nums [ i ] Ġ== Ġitem ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġitem ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġ- 1 ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ// ĠBinary ĠSearch : ĠOnly Ġfor Ġsorted Ġdata ĊĠĠĠ Ġfun Ġbinary ( nums : ĠInt Array , Ġitem : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġstart Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġvar Ġend Ġ= Ġnums . size Ġ- Ġ 1 ĊĠĠĠĠĠĠĠ Ġwhile Ġ( start Ġ<= Ġend ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmid Ġ= Ġ( start Ġ+ Ġend ) Ġ/ Ġ 2 ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( item Ġ== Ġnums [ mid ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġmid ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġif Ġ( item Ġ> Ġnums [ mid ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstart Ġ= Ġmid Ġ+ Ġ 1 ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġif Ġ( item Ġ< Ġnums [ mid ]) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġend Ġ= Ġmid Ġ- Ġ 1 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġ- 1 ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ@ Jvm Static ĊĠĠĠ Ġfun Ġmain ( args : ĠArray < String >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdata Ġ= Ġint ArrayOf ( 1 2 , Ġ 3 4 , Ġ 5 6 , Ġ 7 8 , Ġ 7 9 , Ġ 9 0 ) ĊĠĠĠĠĠĠĠ Ġval Ġfound Ġ= Ġbinary ( data , Ġ 7 8 ) ĊĠĠĠĠĠĠĠ Ġprintln ( found ) ĊĠĠĠ Ġ} Ċ Ċ } Ċ