Форум программистов, компьютерный форум CyberForum.ru

Выбрать самую ближайшую точку - C++

Восстановить пароль Регистрация
 
Gepar
 Аватар для Gepar
1173 / 529 / 20
Регистрация: 01.07.2009
Сообщений: 3,511
08.05.2012, 21:22     Выбрать самую ближайшую точку #1
Есть задачка, но попробую абстрагироваться от неё:
есть 5 точек (x1 > x2> ...>x5). На вход поступает точка x. Нужно выбрать такую точку (x1 - x5), от которой будет ближе всего находится x. Немного упростим задачу: двигаться будем только вперёд (тоесть выбранная точка должна быть больше x). Хотя если предложите вариант хорошего алгоритма без моего упрощения то тоже буду рад
Я чего тему создал: что-то мой вариант с кучей min и max выглядит ущербно ...

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

Реализацию алгоритма нужно сделать на си так что хитрить с stl нельзя.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
08.05.2012, 21:22     Выбрать самую ближайшую точку
Посмотрите здесь:

C++ Определить самую длинную и самую короткую из введенных строк
Найти самую часто встречаемую и самую редко встречаемую буквы во фрагменте произвольного текста C++
C++ Найти точку D, симметричную точку A относительно стороны BC.
C++ Определить самую большую отрицательную и самую маленькую положительную температуры
C++ Структура: Для заданного автора вывести на экран его самую раннюю книгу и самую последнюю - по году издания.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 50
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
08.05.2012, 21:35     Выбрать самую ближайшую точку #2
Это не то?
Gepar
 Аватар для Gepar
1173 / 529 / 20
Регистрация: 01.07.2009
Сообщений: 3,511
08.05.2012, 21:38  [ТС]     Выбрать самую ближайшую точку #3
Toshkarik, ну почти, мне минимальное расстояние надо найти, точнее важно не само расстояние, а то какая это точка будет.
soon
 Аватар для soon
2536 / 1301 / 81
Регистрация: 09.05.2011
Сообщений: 3,086
Записей в блоге: 1
08.05.2012, 22:16     Выбрать самую ближайшую точку #4
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
#include <stdio.h>
#include <stdlib.h>
 
#define SIZE 5
 
int main()
{
    int arr[SIZE] = { -3, 2, 4, 9, 15 };
    int i = 0;
    int a = 8;
    while(abs(arr[i] - a) > abs(arr[i + 1] - a) && i < SIZE - 1)
        ++i;
    printf("%d\n", i);
    return 0;
}
Yandex
Объявления
08.05.2012, 22:16     Выбрать самую ближайшую точку
Ответ Создать тему
Опции темы

Текущее время: 04:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru