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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.67
Wolandello
1 / 1 / 0
Регистрация: 06.06.2009
Сообщений: 35
#1

3 минимальных елемента - C++

20.07.2009, 15:12. Просмотров 1060. Ответов 16
Метки нет (Все метки)

Привет, дан масив чисел мне нужно найти 3 самых малых елемента. Подскажыте алгоритм
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
M128K145
Эксперт C++
8280 / 3499 / 143
Регистрация: 03.07.2009
Сообщений: 10,707
20.07.2009, 15:18     3 минимальных елемента #2
задаеш второй массив(минимальных элементов) из 3 элементов. Заносиш туда первых три элемента твоего массива в порядке возрастания. идеш дальше по своему массиву и сравниваеш сначала с третьим(максимальным из минимальных) элементом твоего массива минимальных элементов. Если он больше чем элемент из этот третий элемент то идеш дальше. Если встретился элемент меньше твоего максимального, то справа на лево проходиш свой массив и вставляеш его в подходящее место(естественно все элементы которые справа от него(больше) сдвигаеш вправо(самый правый элемент теряется))
odip
Эксперт С++
7153 / 3293 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
20.07.2009, 15:19     3 минимальных елемента #3
Заводим массив A на 3 числа.
Вначале он пустой.
В этом массиве будет 3 самых малых элемента, упорядоченные по возрастанию.

Потом цикл по массиву исходных чисел S.
Берем число и вставляем его в массив A, так что бы сохранилась упорядоченность.
Если нужно - сдвигаем элементы.

В конец печатаем содержимое массива A.
Wolandello
1 / 1 / 0
Регистрация: 06.06.2009
Сообщений: 35
20.07.2009, 15:29  [ТС]     3 минимальных елемента #4
Благодарю за ответ
Rififi
2336 / 1051 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
20.07.2009, 15:33     3 минимальных елемента #5
сортируешь массив, берешь первые три элемента.
RazorQ
576 / 343 / 9
Регистрация: 06.02.2009
Сообщений: 1,386
20.07.2009, 15:48     3 минимальных елемента #6
Цитата Сообщение от Rififi Посмотреть сообщение
сортируешь массив, берешь первые три элемента.
Супер !!! Rififi, ты гений.
M128K145
Эксперт C++
8280 / 3499 / 143
Регистрация: 03.07.2009
Сообщений: 10,707
20.07.2009, 16:00     3 минимальных елемента #7
Rififi, точно! Наверно пора мне завязывать с написанием велосипедов
odip
Эксперт С++
7153 / 3293 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
20.07.2009, 16:01     3 минимальных елемента #8
сортируешь массив, берешь первые три элемента.
Мне такая мысль тоже приходила.
Но если это задача, данная преподавателем, то такое решение скорее всего не прокатит.
Если это реальная задача с кучей данных, то такое решение может оказаться более накладным.
RazorQ
576 / 343 / 9
Регистрация: 06.02.2009
Сообщений: 1,386
20.07.2009, 16:05     3 минимальных елемента #9
Цитата Сообщение от odip Посмотреть сообщение
Но если это задача, данная преподавателем, то такое решение скорее всего не прокатит.
С чего это вдруг?! Преподы не любят простых и понятных методов? Если это так, то они садисты.
odip
Эксперт С++
7153 / 3293 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
20.07.2009, 16:06     3 минимальных елемента #10
С чего это вдруг?! Преподы не любят простых и понятных методов? Если это так, то они садисты.
А ты не знал, что среди них встречаются садисты ?

Препод тебе скажет - сделай тоже самое, но без заведения дополнительного массива на N элементов.
RazorQ
576 / 343 / 9
Регистрация: 06.02.2009
Сообщений: 1,386
20.07.2009, 16:09     3 минимальных елемента #11
Цитата Сообщение от odip Посмотреть сообщение
Препод тебе скажет - сделай тоже самое, но без заведения дополнительного массива на N элементов.
Так стоп. А где это мы заводим дополнительный массив? В алгоритмах M128K145 и odip (то бишь твой) надо заводить массив, а когда мы делаем сортировку, то не надо ничего заводить. Мы просто выводим на экран (или куда там ещё надо) первые три элемента отсортированного массива.
odip
Эксперт С++
7153 / 3293 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
20.07.2009, 16:19     3 минимальных елемента #12
Если тебе зачем-то понадобится исходный массив зачем-то еще, то сортировать числа прямо в нем нельзя.

Ладно, я неправильно сформулировал.

Нужно так:
Не изменяя исходный массив и не заводя дополнительный массив на N элементов получить 3 минимальных элемента.

Кстати в алгоритме M128K145 есть небольшая ошибка.
В исходном массиве может быть меньше 3-ех элементов
M128K145
Эксперт C++
8280 / 3499 / 143
Регистрация: 03.07.2009
Сообщений: 10,707
20.07.2009, 16:31     3 минимальных елемента #13
odip, Возможно ты и прав, но из задания
нужно найти 3 самых малых елемента
следует, что их как минимум 3
odip
Эксперт С++
7153 / 3293 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
21.07.2009, 13:12     3 минимальных елемента #14
2Wolandello: Ты получил нужный тебе алгоритм ?
mamedovvms
2915 / 836 / 93
Регистрация: 30.04.2009
Сообщений: 2,615
21.07.2009, 13:20     3 минимальных елемента #15
Цитата Сообщение от M128K145 Посмотреть сообщение
задаеш второй массив(минимальных элементов) из 3 элементов.
а нельзя ли просто взять три переменных min1,min2,min3
Monte-Cristo
2786 / 1372 / 30
Регистрация: 07.03.2009
Сообщений: 4,446
21.07.2009, 13:27     3 минимальных елемента #16
odip, а сделаешь путем занисения элементов в массив из 3 элементов, препод скажет сделай мне другим вариантом, который на этот не похож...

Преподы часто любят так делать, дабы убедиться, что человек сам решал данную задачу. И вообще... странно как-то... Сессия уже давно закончилась..какая учеба? Оо
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.07.2009, 15:45     3 минимальных елемента
Еще ссылки по теме:

C++ Возвращение номера елемента массива
Перемещение максимального елемента в начало очереди C++
C++ Поиск максимального елемента
C++ Вычислить величину Z, которая равняется сумме минимальных элементов массивов, разделенной на двойное произведение индексов минимальных элементов
Метод принимающий четыре елемента C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
odip
Эксперт С++
7153 / 3293 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
21.07.2009, 15:45     3 минимальных елемента #17
а нельзя ли просто взять три переменных min1,min2,min3
Можно и так.
Yandex
Объявления
21.07.2009, 15:45     3 минимальных елемента
Закрытая тема Создать тему
Опции темы

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