MurZilka Опубликовано 16 ноября, 2005 Жалоба Поделиться Опубликовано 16 ноября, 2005 Всем привет. Нужна подсказка. Есть массив A[N,M] упорядоченый по возрастанию по строкам и столбцам, т.е. приблизительно так (1,2,3,4) (11,12,13,14) (21,22,23,24) (31,32,33,34) Как найти элемент массива X, если X можно сравнить не более чем с N+M элементами массива? Буду весьма признателен. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Ineu Опубликовано 20 ноября, 2005 Жалоба Поделиться Опубликовано 20 ноября, 2005 Как я понял, элемент массива a[j] определяется как X = 10*i + j + 1. В таком случае, индексы определяются как: i = X/10, j = X%10 - 1. Впрочем, это слишком просто, чтобы быть правильным. Опишите подробней принцип формирования массива. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
MurZilka Опубликовано 22 ноября, 2005 Автор Жалоба Поделиться Опубликовано 22 ноября, 2005 попробую чуть подробней Проблема в том, что X можно сравнить не более чем с (N+M) элементами массива. т.е. нельзя перебрать все элементы, если массив a[5][5], то X можно сравнивать только 10 раз. массив упорядочен по возрастанию. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Ineu Опубликовано 22 ноября, 2005 Жалоба Поделиться Опубликовано 22 ноября, 2005 Если массив целиком упорядочен, то для любого i2 >= i1, j2 >= j1 выполняется условие a[i2][j2] > a[i1][j1] (разумеется, индексы не могут быть равны одновременно). В таком случае нет необходимости сравнивать Х с каждым элементом массива, а можно в цикле по строкам сравнивать его с первым элементом строки. Очевидно, что если a[0] < X < a[i + 1][0], то искомый элемент находится в строке i. В зависимости от метода поиска количество проверок может разниться, но в любом случае оно не будет больше n. Когда строка найдена, можно проделывать ту же операцию со столбцами в найденной строке. Опять же, вне зависимости от метода проверки, для нахождения нужного элемента понадобится не более m проверок. То есть даже в худшем варианте мы вполне укладываемся в ограничения задачи. Цитата Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Присоединяйтесь к обсуждению
Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.