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

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

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

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

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

Привет, дан масив чисел мне нужно найти 3 самых малых елемента. Подскажыте алгоритм
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.07.2009, 15:12
Здравствуйте! Я подобрал для вас темы с ответами на вопрос 3 минимальных елемента (C++):

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

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

Вычислить величину Z, которая равняется сумме минимальных элементов массивов, разделенной на двойное произведение индексов минимальных элементов - C++
Заданы два массива - Х(10) и Y(12). Вычислить величину Z, которая равняется сумме минимальных элементов массивов, разделенной на двойное...

Название елемента - C++
Интересует что за елемент(объект)на рисунке отображает цвет... в своей проге создал ползунки...изменения значений...но не могу...

Нахождение максимального елемента.. - C++
Есть задача: дан массив(одномерный,кол-во елементов рендомное) из натуральных елементов, отсортировать его по убыванию и дано число...

Перемещение елемента массива - C++
я создал двумерный массив и нарисовал ним текстовое поле примерно такое |---------| |---------| |---------| |---------| как...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
M128K145
Эксперт С++
8288 / 3508 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
20.07.2009, 15:18 #2
задаеш второй массив(минимальных элементов) из 3 элементов. Заносиш туда первых три элемента твоего массива в порядке возрастания. идеш дальше по своему массиву и сравниваеш сначала с третьим(максимальным из минимальных) элементом твоего массива минимальных элементов. Если он больше чем элемент из этот третий элемент то идеш дальше. Если встретился элемент меньше твоего максимального, то справа на лево проходиш свой массив и вставляеш его в подходящее место(естественно все элементы которые справа от него(больше) сдвигаеш вправо(самый правый элемент теряется))
0
odip
Эксперт С++
7157 / 3297 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
20.07.2009, 15:19 #3
Заводим массив A на 3 числа.
Вначале он пустой.
В этом массиве будет 3 самых малых элемента, упорядоченные по возрастанию.

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

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

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

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

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

Кстати в алгоритме M128K145 есть небольшая ошибка.
В исходном массиве может быть меньше 3-ех элементов
0
M128K145
Эксперт С++
8288 / 3508 / 143
Регистрация: 03.07.2009
Сообщений: 10,706
20.07.2009, 16:31 #13
odip, Возможно ты и прав, но из задания
нужно найти 3 самых малых елемента
следует, что их как минимум 3
0
odip
Эксперт С++
7157 / 3297 / 59
Регистрация: 17.06.2009
Сообщений: 14,164
21.07.2009, 13:12 #14
2Wolandello: Ты получил нужный тебе алгоритм ?
0
mamedovvms
2917 / 838 / 93
Регистрация: 30.04.2009
Сообщений: 2,627
21.07.2009, 13:20 #15
Цитата Сообщение от M128K145 Посмотреть сообщение
задаеш второй массив(минимальных элементов) из 3 элементов.
а нельзя ли просто взять три переменных min1,min2,min3
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.07.2009, 13:20
Привет! Вот еще темы с ответами:

Поиск максимального елемента - C++
вот есть код програмы которая генерует случайные числа по нормально закону, и нужно найти максимальный елемент в каждом столбце, но находит...

Возвращение номера елемента массива - C++
Написать функцию возвращающую ссылку на элемент глобального массива. Подразумевается вывести элемент массива под его номером с помощью...

c++ stl удаление елемента из list - C++
for(std::list<gun>::iterator iter = Gun.begin(); iter != Gun.end(); iter++) { iter->controle(); if(iter->getlife() == 0) ...

Метод принимающий четыре елемента - C++
Нужно написать метод funCall который будет принимать четыре аргумента 1. указатель на двухмерную таблицу переменных типа int в которой...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
21.07.2009, 13:20
Закрытая тема Создать тему
Опции темы

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