Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.01.2012, 14:20   #1
Михаил Роганин
 
Регистрация: 18.12.2011
Сообщений: 5
Восклицание Рекурсивный поиск минимума в массиве

Добрый день. Ребята, очень нужна ваша помощь. Облазил уже весь интернет, а не могу найти алгоритм. Вот задача (на С++):

Написать программу, реализующую рекурсивный алгоритм нахождения наименьшего числа в некотором массиве чисел при помощи выборки произвольного i-го элемента массива и разделения массива на элементы больше и меньше выбранного.

Я бы с лёгкостью сделал простой алгоритм, без рекурсии, а с помощью неё прям не знаю Уже все мозги закипают. Буду очень благодарен за вашу помощь.
Михаил Роганин вне форума Ответить с цитированием
Старый 16.01.2012, 16:07   #2
Михаил Роганин
 
Регистрация: 18.12.2011
Сообщений: 5
По умолчанию

Ну вот...теперь значит сессию не сдам...
Михаил Роганин вне форума Ответить с цитированием
Старый 16.01.2012, 16:14   #3
KobolD
Форумчанин
 
Регистрация: 10.06.2010
Сообщений: 239
По умолчанию

Твоя функция получает в качестве параметра массив
Берет элемент посредине масива (тут впринципе можно брать любой: первый, последний)
Начинаешь сравнивать все элементы исходного массива с выбранным элементом и если какойто элемент меньше то запихиваешь его в новый масив, если больше то ниче не делаешь.
Если в новом масиве не будет ни одного элемента, то выбранный элемент из п.2 -наименьший
Если в новом масиве один элемент, то это и есть наименьший элемент
Если в номов масиве больше одного элемента, то вызываешь твою функцию, а в качестве параметра передаешь новый масив.
Чтобы слова не расходились с делом, нужно молчать и ничего не делать.
KobolD вне форума Ответить с цитированием
Старый 16.01.2012, 17:07   #4
Mandrivnyk
Software Developer
Участник клуба
 
Аватар для Mandrivnyk
 
Регистрация: 01.03.2011
Сообщений: 1,098
По умолчанию

Ну, как-то так, например...


Код:
#include <iostream>
#include <cstdlib>
#include<ctime>

using namespace std;

int min(int a, int b);
int Rmin(int *array, int a, int n);

int main()
{
    const N = 10;
    int array[N];
    srand(time(NULL));
    for (int i = 0; i < N; i++)
    {
        array[i] = rand() % 101;
        cout << array[i] << "  ";
    }
    cout << endl;
    cout << Rmin(array, array[0], N) << endl;

}

int min(int a, int b)
{
    return (a < b ? a : b);
}

int Rmin(int *array, int a, int n)
{
    if (n == 2)
        return min(array[0], array[1]);
    else
        return min(array[n-1], Rmin(array, array[n], n-1));
}
Болтовня ничего не стоит. Покажите мне код. (c) Linus Torvalds
Помог ответ? -- Поставьте отзыв.
Выражения особой благодарности в рублевом эквиваленте отправлять сюда --> R269634919062
Mandrivnyk вне форума Ответить с цитированием
Старый 17.01.2012, 14:30   #5
Михаил Роганин
 
Регистрация: 18.12.2011
Сообщений: 5
По умолчанию

Спасибо большое))) Прямо спасли меня)))
Михаил Роганин вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Pascal] Поиск минимума в одномерном массиве merch Паскаль, Turbo Pascal, PascalABC.NET 7 19.05.2011 02:35
Поиск минимума/максимума в массиве gwarthy Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 6 28.01.2010 22:27
Поиск минимума в массиве. Sparky Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 10 17.09.2009 19:39
Програма на Pascal: нахождение минимума с помощью процедуры в 2мерном массиве. Нужна помощь. Lopirion Помощь студентам 2 28.12.2008 21:23
Нахождение минимума и максимума в трехмерном массиве 1234 Помощь студентам 11 26.05.2008 16:23