Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Поиск по близости к заданному значению ключа 
:(
    Опции темы
Neighbour
Дата 20.3.2006, 12:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 20.3.2006

Репутация: нет
Всего: нет



Есть таблица.

Нужно реализовать алгоритм поиска по близости к заданному значению ключа в таблице, одно из полей которой ключевое. Что вообще означает это понятие "по близости к заданному значению ключа". Просмотрел несколько книг по алгоритмам - нигде не могу найти. Если Вам нетрудно - поясните, а если уж совсем легко - кусочек кода с реализацией. smile И еще - в задании конкретно не указано - отсортирована таблица или нет. Есть ли одинаковые ключевые поля. Если можно - мысли по этому вопросу
PM MAIL   Вверх
Akina
Дата 20.3.2006, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



В данном случае имхо под "близостью" понимается следующее:

Если ввести в таблицу запись с указанным значением ключа, то самыми близкими будут предыдущая и последующая записи от этой введенной при сортировке по указанному ключу.

Цитата(Neighbour @ 20.3.2006, 13:11 Найти цитируемый пост)
в задании конкретно не указано - отсортирована таблица или нет

Сортировка указывается в запросе. Таблица в реляционной БД НЕ МОЖЕТ БЫТЬ сортирована.

Цитата(Neighbour @ 20.3.2006, 13:11 Найти цитируемый пост)
Есть ли одинаковые ключевые поля.

Глупости-то не говори... думай сперва...


Цитата(Neighbour @ 20.3.2006, 13:11 Найти цитируемый пост)
Нужно реализовать алгоритм поиска

Код

select top 1 *
from table
order by ID 
where ID > заданногоID

Сортировка указывается ASC или DESC - в зависимости от заложенного смысла понятия "ближайшая запись". Для числовых можно также использовать

Код

order by ABS(ID - заданныйID) ASC



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Neighbour
Дата 20.3.2006, 12:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 20.3.2006

Репутация: нет
Всего: нет



Цитата

Цитата(Neighbour @ 20.3.2006, 13:11 )
Есть ли одинаковые ключевые поля.

Глупости-то не говори... думай сперва...


Почему глупости? У меня не база данных а таблица. Простое институтское задание по моделям и структурам данных.

Это сообщение отредактировал(а) Neighbour - 20.3.2006, 12:27
PM MAIL   Вверх
Akina
Дата 20.3.2006, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Цитата(Neighbour @ 20.3.2006, 13:26 Найти цитируемый пост)
Почему глупости?

Ключ потому и ключ, что он однозначно идентифицирует запись. Следовательно, одинаковых ключевых полей быть не может, а если они есть - значит данные разрушены (не выполняется требование целостности).


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Neighbour
Дата 20.3.2006, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 20.3.2006

Репутация: нет
Всего: нет



Ладно, уберем из формулировки слово "ключевое". Просто - поиск по одному из полей.
PM MAIL   Вверх
Akina
Дата 20.3.2006, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



А не влияет. Ключ, не ключ - по-любому будет сортировка.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Neighbour
Дата 21.3.2006, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 28
Регистрация: 20.3.2006

Репутация: нет
Всего: нет



Цитата

А не влияет. Ключ, не ключ - по-любому будет сортировка.


Хорошо, допустим есть таблица. Строка состоит из трех полей: имя, отчество, фамилия. Например Иван Иванович Иванов, Иван Петрович Сидоров, Василий Степанович Николаев, Василий Сергеевич Орлов.

Ты хочешь сказать что е нельзя отсортировать по имени? Это не база данных. Нужна программа на любом ЯП.

ЗЫ Это только пример.

Нужен, как я уже говорил, поиск по близости к значению поля. Вернее само понятие, что это из себя представляет.

Это сообщение отредактировал(а) Neighbour - 21.3.2006, 10:09
PM MAIL   Вверх
Akina
Дата 21.3.2006, 10:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 20
Всего: 454



Я же тебе уже SQL-шаблон дал - корректируй по своим данным. Чего еще надо-то?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.2084 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.