![]() |
Задачки
Привет. Вот мне на собеседовании задали задачку. Есть массив, в нем находятся цифры, расположенные по возрастанию. Пример 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 ); } } } } } |
1. Название темы не раскрывает сути вопроса.
2. Для оформления своего кода надо использовать соответствующие теги. |
| Часовой пояс GMT +4, время: 14:29. |
Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.