Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
-1 / 1 / 0
Регистрация: 24.12.2018
Сообщений: 124

Нахождение первых N минимальных элементов вектора

23.04.2021, 17:30. Показов 1038. Ответов 1

Студворк — интернет-сервис помощи студентам
Нужно найти N минимальных элементов в векторе, который состоит из элементов типа elem.
Поскольку вектор большой, то нужно делать сортировку максимально быстро.
Если делать это с помощью std::nth_element, то результат получается странный, т.к. я не совсем понял смысл этого алгоритма.
Как можно сделать максимально быструю сортировку на основе стандартных алгоритмов, учитывая, что находить нужно только N минимальных элементов?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// Свой тип данных
struct elem
    {
        int value;   // по этому полю сортируем вектор
        int index_1;
        int index_2;
    } ;
 
// Вектор элементов типа elem, размер вектора большой
QVector<elem> vect(10000000);
 
// Получить первые N минимальных значений вектора vect по полю value
int N = 100;
 
// Сортировка вектора vect
std::nth_element(vect.begin(), &vect[N-1], vect.end(), [](elem& left, elem& right) { return (left.value < right.value); });
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
23.04.2021, 17:30
Ответы с готовыми решениями:

Нахождение минимальных элементов
Не мог бы кто нибудь объяснить почему min1, min2, min3 изначально 99? void FirstArray(int Arr1){ int min1=99; int min2=99; ...

Вычислить сумму чётных элементов и произведение первых 3-х нечетных элементов вектора
составить программу для вычисления Q=S/L, где S- сумма всех чётных элементов вектора X ; L- произведение первых 3-х нечетных элементов...

В одномерном массиве, размер которого задаётся пользователем, найти сумму первых K минимальных элементов
Для одномерного массива С найти сумму К минимальных элементов, где 0&lt;n&lt;45. К ввести с клавиатуры. не могу понять как сделать это..

1
 Аватар для zayats80888
6352 / 3523 / 1428
Регистрация: 07.02.2019
Сообщений: 8,995
23.04.2021, 17:35
C++
1
std::nth_element(vect.begin(), vect.begin() + N, vect.end(), [](elem const & left, elem const & right) { return (left.value < right.value); });
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.04.2021, 17:35
Помогаю со студенческими работами здесь

Нахождение максимальных элементов, находящийся на периметре матрицы, и минимальных элементов вне периметра матрицы
Разработать программу, которая в целочисленной квадратной матрице находит максимальный элемент(ы), находящийся на периметре матрицы, и...

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

Заменить первых 2 нулевые элементы заданного вектора соответственно на первых 2 не нулевые элементы этого вектора
Заданный вектор Т, который состоит из n действительных чисел. Заменить первых 2 нулевые элементы заданного вектора соответственно на первых...

C++ MPI: нахождение минимального значения среди элементов вектора
Здравствуйте форумчане. Помогите написать программу на MPI. Нахождение минимального значения среди элементов вектора p = n / 2 ...

Построение вектора минимальных элементов матрицы
Доброго времени суток, использую библиотеку MathNet.Numerics. Возникла потребность построение вектора минимальных элементов по...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
Расскажи мне о Мире, бродяга
kumehtar 12.11.2025
— Расскажи мне о Мире, бродяга, Ты же видел моря и метели. Как сменялись короны и стяги, Как эпохи стрелою летели. - Этот мир — это крылья и горы, Снег и пламя, любовь и тревоги, И бескрайние. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru