![]() |
|
||||||||||
|
|
|
|||||
|
Регистрация: Apr 2011
Сообщений: 83
|
Привет. Вот мне на собеседовании задали задачку. Есть массив, в нем находятся цифры, расположенные по возрастанию. Пример mArray = [ 5, 7, 9, 10, 15, 18, 25, 27, 30, 34, 38, 40, 44, 47 ] Нужно. Узнать индекс искомого числа в массиве. Число мы знаем. Это для примера можно взять любое число из данного массива, но вот индекс этого числа нужно узнать. Вот только нужно не бегать по всему массиву. А разделить массив на 2 и узнать данный индекс больше или меньше искомого числа. И так далее делить данные части массива пополам. Пока не найдем число. Как это можно сделать?
Задачка довольно интересная. как для моего уровня. Может Вы подкинете мне еще похожих или не очень задач. На работу с массивами, с компьютерной логикой или что то в этом духе, для тренировки ? Добавлено через 1 минуту Вот что мне в голову пришло package { import flash.display.Sprite; import flash.events.Event; public class Main extends Sprite { public var d:int = 14; public var sArray:Array = new Array ( ); public function Main():void { sArray = [ 4, 6, 8, 14, 24, 32, 44, 54, 72, 84 ]; var s:Number = sArray.length; sear ( s ); } private function sear( s:Number ):void { var m:int = s / 2; if ( sArray [ m ] > d ) { while ( sArray [ m ] > d ) { m = m / 2; trace ( m ); } } else if ( sArray [ m ] < d ) { while ( sArray [ m ] > d ) { m = m / 2; trace ( m ); } } } } } |
![]() |
![]() |
Часовой пояс GMT +4, время: 18:53. |
|
|
« Предыдущая тема | Следующая тема » |
|
|