powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Выборка из массива
6 сообщений из 6, страница 1 из 1
Выборка из массива
    #33675029
Street
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите пожалуйста:
Есть массив из 100 элементов float T[100] заполненный случайными числами от 1 до 200
и есть массив и 4 элементов float R[4] заранее заполненный большими числами
Как записать в массив R 4 минимальных числа из массива T?
...
Рейтинг: 0 / 0
Выборка из массива
    #33675053
White Owl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Отсортируй Т, возьми четрые первых или четыре последних элемента из Т.
...
Рейтинг: 0 / 0
Выборка из массива
    #33676157
s-e-r-g-e
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а не получится что сортировка первого массива это пустая трата ресурсов.. тем более он большой и получится куча перестановок и куча сравнений.. плюс четыре копирования в конце,
а при тупом пробегании по певому и сравнени с каждым из 2го может и не хуже получиться, получится всего 400 проверок и всего до 100 перестановок.. при очень неудачном стечении обстоятельств.

java/netbeans/jse
...
Рейтинг: 0 / 0
Выборка из массива
    #33677140
Akh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
s-e-r-g-eа не получится что сортировка первого массива это пустая трата ресурсов.. тем более он большой и получится куча перестановок и куча сравнений.. плюс четыре копирования в конце,
а при тупом пробегании по певому и сравнени с каждым из 2го может и не хуже получиться, получится всего 400 проверок и всего до 100 перестановок.. при очень неудачном стечении обстоятельств.

java/netbeans/jse

Надо будет брать каждый элемент из первого массива и заменять его на самый большой элемент второго, если он [во втором] будет больше элемента из первого. Сравнения и перестановки считай сам.
...
Рейтинг: 0 / 0
Выборка из массива
    #33677428
redskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
s-e-r-g-eа не получится что сортировка первого массива это пустая трата ресурсов.. тем более он большой и получится куча перестановок и куча сравнений.. плюс четыре копирования в конце

Если я правильно понял, надо просто выбрать 4 минимальных элемента массива. Самый простой способ, как уже сказали - отсортировать и взять 4 первых по порядку. Если хочется избежать лишних операций, действительно нам же не надо сортировать все , а только найти 4 минимальных, то можно воспользоваться алгоритмом partial_sort из стандартной библиотеки. Он делает как раз то что надо, находит N минимальных (если не задан другой критерий сортировки) элементов контейнера и пишет их по порядку в начало. Внизу пример.

Адреса элментов массива в качестве итераторов смотрятся несколько странно, но раз изначально по условию задачи имеем массив (а не вектор, что выглядело бы более привычно), то и будем курить бамбук так:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
#include <iostream>
#include <vector>
#include <algorithm>

int main()
{
    const int N =  10 ;
    const int K =  10 ;

    int v[N];
    for(int i =  0 ; i < N; i++)
    {
        v[i] = rand();
        cout << v[i] << endl;
    }

    partial_sort(&v[ 0 ], &v[K], &v[N- 1 ]);

    cout << "after partial_sort:\n";
    // на первых 4 позициях минимальные элементы массива. делайте с ними теперь все что угодно :)
    for(int i =  0 ; i < N; i++)
    {
        cout << v[i] << endl;
    }

   return  0 ; 
}


...
Рейтинг: 0 / 0
Выборка из массива
    #33677436
redskin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опечатка

Вместо
Код: plaintext
1.
const int K =  10 ;

конечно
Код: plaintext
1.
const int K =  4 ;
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Выборка из массива
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]