| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > PHP: Общие вопросы > массив, сортировка |
| Автор: Артем125 12.10.2009, 21:32 | ||
| Здравствуйте, есть массив, достается из базы. целые числа. допустим у нас есть ряд 0,1,3,6. Необходимо найти минимальное значение в свободном промежутке. найти 2 в следующем ряду 1,2 найти 3 в этом 4,5,6 найти 3 и т.д. Может есть стандартная функция по поиску свободного значения в интервале значений массива Цель: допустим есть ряд от 1 до 10 без промежутков. в произвольном порядке удаляются цифры. Так вот чтобы не продолжать ряд.. 11,12..99..n Моя функция не фурычит
|
| Автор: brother79 13.10.2009, 17:16 |
| Я могу только словами описать алгоритм как сам делал такую задачу двоичным поиском. вычисляешь кол-во эл-ов. Если оно меньш чем разница между последним и первым - то есть дырка. Берёшь середину, и также смотришь разницу также только для 2-х половинок массива, если дырка в первом, то делишь первый, если во втором - то второй, и т.д., пока массив до 3-х или 2-х не уменьшится. |
| Автор: NLspieler 13.10.2009, 17:53 |
| не понял вашу задачу. Но кажется необходимые стандартные функции существуют |
| Автор: Артем125 13.10.2009, 19:04 | ||||
Спасибо, я тоже пришел к такому аглоритму )))) пока правда не реализовал, извернулся по другому Добавлено @ 19:09
к сожалению такой функции не нашел, а перерыл я много есть к примеру ряд 1,4,5,8,16, он может быть любого количества элементов и лбого диапазона... переодически элементы заменяются, удаляются, добавляются.... задача вставлять в него элементы значения дмапозона в данном случае от 1 до 16, если дырки нет, то 17, если нет ни одного элемента то 0 заполняется в сделующем порядке. нет элементо... ввод 0 значение, есть 0 значение, ввод 1 значение, есть 01 ввод 2, есть 012 ввод 3 и т.д. а помтом при уделении например элемента со значением 1 получаем ряд 02. При удалении 2, получаем 0.. |
| Автор: brother79 13.10.2009, 19:21 |
| Кстати в каком-то языке связанным с вебом такая ф-я была, только когда она мне попадалась - оно мне не надо было, а счас не вспомню, проще самому написать. |
| Автор: Артем125 13.10.2009, 19:23 |
| ну в общем то да, ее реализовать на самом деле не сложно, сложней отладить, а также нужен мотив и время (с моим начальным уровнем где-то час наверно) ))) Но необходимость отпала))) Кстати, когда почитывал Подбельскую, учебник С++, там много описаний функций стандартной библиотеки... и количество функций там впечатляет как и количество библиотек, а тут блин, по десятку функций всего для работы различными сушностями (( |
| Автор: brother79 14.10.2009, 13:56 | ||
Если ентересно, есть прекрасно работающий код, правда не php и не с массивом, но aa = Q->FieldByName(Field.c_str())->AsInteger; заменить на $aa = $array[$Field]; - думаю не сложно будет. Просто это писалось очень давно, ещё для парадоксовых баз, и никогда не переделывалось, и сейчас мне перекладывать на php смысла нету, а тебе если не хочется отлаживать - можешь переложить на php |