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

Выбрать n максимальных элементов из массива - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Сортировка массива структур вставками http://www.cyberforum.ru/cpp-beginners/thread716434.html
Есть файл с массивом структур, нужно выполнить сортировку методом вставок.. Мучаюсь долгое время, но почему-то все время 2 последних пункта повторяются, а 3 соответственно пропадает.. Где моя ошибка, подскажите пожалуйста! void Vst() { if ((fl = fopen(name,"wb")) == NULL) { cout << "Oshibka pri sozdanii" << endl; exit(1); } int i, j; TRailw buff;
C++ Нужна блок-схема проги на c++ // Игра САПЁР! #include "stdafx.h" #include <iostream> #include <time.h> #include <windows.h> #include <conio.h> using namespace std; // P - размер поля по умолчанию (оно квадратное); M - число мин на поле http://www.cyberforum.ru/cpp-beginners/thread716427.html
Чтение и подсчет контрольной суммы для .exe файлов C++
Добрый день. У меня есть функция для подсчета контрольной суммы CRC32. unsigned long Crc32(unsigned char *buf, unsigned long len){ unsigned long crc_table; unsigned long crc; for (int i = 0; i < 256; i++){ crc = i; for (int j = 0; j < 8; j++) crc = crc & 1 ? (crc >> 1) ^ 0xEDB88320UL : crc >> 1; crc_table = crc;
тип переменных C++
объясните тип переменных struct list (Динамическая структура данных «список») pointer (Указатель на список) list0 (Указатель на голову списка) n (Элемент для вставки произвольного типа TE) f (Файловая переменная) cur (Указатель на список) sum (Для суммирования элементов списка) number (Подсчет числа элементов списка)
C++ Не могу дописать программу. Двумерный массив http://www.cyberforum.ru/cpp-beginners/thread716389.html
Дана целочисленная прямоугольная матрица. Определить количество строк, содержащих хотя бы один нулевой элемент, и номер столбца, в котором находится самая длинная серия одинаковых элементов. Помогите пожалуйста или хоть намекните как делать)) разбираюсь пока плохо в этом... Вот что у меня есть : #include "stdafx.h" #include "conio.h" #include <math.h> #include <clocale> #include...
C++ Написать на С++ функцию, переставляющую в обратном порядке элементы в односвязном списке Здравствуйте, помогите пожалуйста Написать на С++ функцию, переставляющую в обратном порядке элементы в односвязном списке подробнее

Показать сообщение отдельно
Buckstabue
 Аватар для Buckstabue
175 / 124 / 6
Регистрация: 12.01.2012
Сообщений: 624
02.12.2012, 18:48     Выбрать n максимальных элементов из массива
Damaks, выбираешь первые N элементов(точнее их индексы или указатели) и запихиваешь во вспомогательный массив. Сортируешь по желанию этот вспомогательный массив. Далее, начиная с N + 1 элемента, смотришь исходный массив и в случае нахождения элемента меньшего, чем во вспомогательном заменяешь больший элемент на меньший. Вообще я не вижу здесь оптимального алгоритма, где-то быстрее будет хранить индексы в массиве, где-то быстрее будет пробежаться N раз по всему массиву. По поводу более экономного расхода памяти можно поступить таким образом:
заводим переменные curMax, prevMax // текущий максимум и предыдущий максимум в векторе mdata
В конкретно данном случае prevMax можно сделать равным INT_MAX из стандартной библиотеки <climits>
обходим массив N раз и каждый раз рассматриваем только те значения, которые меньше prevMax. Среди этих значения ищем максимум и записываем его в curMax. после каждой внешней итерации выводим значение curMax и делаем prevMax = curMax
 
Текущее время: 19:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru