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

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

Войти
Регистрация
Восстановить пароль
 
dooml
1 / 1 / 0
Регистрация: 06.02.2013
Сообщений: 15
#1

Отсортировать массив с хаотическим индексом - C++

14.02.2013, 21:21. Просмотров 318. Ответов 5
Метки нет (Все метки)

К примеру у нас есть массив из 5 элементов[элемент][индекс]:
1) [43][103]
2) [5][2]
3) [67][54]
4) [55][27]
5) [38][98]
Можно вводить с клавиатуры или задавать рандомом и массив и индекс. Отсортировать этот массив.
Я что-то не понимаю как задать рандомный индекс.
К примеру что-то вроде:
C++
1
2
3
4
5
6
7
8
int j=0;
While(j<10)
{
    cin>>i;
    cin>>mas[i];
    <сортировка>
    j++;
}
Все равно как-то слабо представляю ее работоспособность. Помогите с реализацией или подкиньте примеров.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.02.2013, 21:21     Отсортировать массив с хаотическим индексом
Посмотрите здесь:

Отсортировать массив C++
Отсортировать массив C++
Отсортировать массив C++
Отсортировать массив C++
C++ Отсортировать и вывести массив
Сформировать и отсортировать массив C++
Отсортировать массив по возрастанию C++
C++ Отсортировать массив
C++ Отсортировать массив
C++ отсортировать массив
C++ Отсортировать массив
Массив из 12 ячеек заполнить рандом, заменить нули в ячейках с четным индексом на 1 в ячейках с нечетным на -1 C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Troll_Face
 Аватар для Troll_Face
600 / 400 / 4
Регистрация: 26.04.2012
Сообщений: 2,070
14.02.2013, 21:51     Отсортировать массив с хаотическим индексом #2
имхо, бред это, а не задание... рандомьте массив, заполняйте его нулями, а в элементы, которые нужно что-то положить что-то ложите. затем тупо сортируйте по убыванию. вот и вся штука.
dooml
1 / 1 / 0
Регистрация: 06.02.2013
Сообщений: 15
15.02.2013, 00:44  [ТС]     Отсортировать массив с хаотическим индексом #3
Цитата Сообщение от Fatal Error Посмотреть сообщение
имхо, бред это, а не задание... рандомьте массив, заполняйте его нулями, а в элементы, которые нужно что-то положить что-то ложите. затем тупо сортируйте по убыванию. вот и вся штука.
Подробней можно?
w72er
3 / 3 / 0
Регистрация: 28.11.2012
Сообщений: 21
15.02.2013, 07:58     Отсортировать массив с хаотическим индексом #4
Массив -- это список объектов, где объект определяется индексом массива. Правильно ли я понимаю, что у тебя есть пять объектов, которые расположены в массиве больше чем на 5 элементов? Например:
индекс 0: 6
индекс 1: 11
индекс 2: ничего
индекс 3: 45
индекс 4: ничего
индекс 5: 3
индекс 6: ничего
индекс 7: ничего
индекс 8: 104
индекс 9: ничего

C++
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
#include <vector>
#include <cstdlib>
#include <iostream>
#include <algorithm>
 
int main()
{
    std::vector<int> bus; //шина, с которой считываем данные
    const int capacity = 20; //разрядность шины (количество портов)
 
    //сформируем состояние шины
    for (int i = 0; i < capacity; i++)
    {
        int random = rand() % 100; //от 0 до 99
        //сигнал регистрируется на порту шины, если его уровень больше 50.
        int signal = (random > 50) ? random : 0;
        bus.push_back(signal);
    }
 
    std::cout << "bus at now:" << std::endl;
    for (int i = 0; i < capacity; i++)
    {
        std::cout << "bus[" << i << "] = " << bus[i] << std::endl;
    }
 
    std::vector<int> tmp; //временный массив для сортировки
    for (int i = 0; i < capacity; i++)
    {
        if (bus[i] != 0) //если есть сигнал
            tmp.push_back(bus[i]);
    }
 
    //отсортировали сигналы по значению.
    std::sort(tmp.begin(), tmp.end());
 
    std::cout << "processed bus:" << std::endl;
    for (std::vector<int>::iterator it=tmp.begin(); it!=tmp.end(); ++it)
    {
        std::cout << *it << std::endl; //Вывод отсортированных сигналов
    }
 
    return 0;
}
Toshkarik
 Аватар для Toshkarik
1139 / 856 / 51
Регистрация: 03.08.2011
Сообщений: 2,381
Завершенные тесты: 1
15.02.2013, 08:11     Отсортировать массив с хаотическим индексом #5
dooml, полагаю, Вам тут подойдет std::map.
dooml
1 / 1 / 0
Регистрация: 06.02.2013
Сообщений: 15
15.02.2013, 23:20  [ТС]     Отсортировать массив с хаотическим индексом #6
Цитата Сообщение от w72er Посмотреть сообщение
Массив -- это список объектов, где объект определяется индексом массива. Правильно ли я понимаю, что у тебя есть пять объектов, которые расположены в массиве больше чем на 5 элементов? Например:
индекс 0: 6
индекс 1: 11
индекс 2: ничего
индекс 3: 45
индекс 4: ничего
индекс 5: 3
индекс 6: ничего
индекс 7: ничего
индекс 8: 104
индекс 9: ничего
Почти, только вот так:

Индекс 10: 43
Индекс 76: 25
Индекс 2: 86
Индекс 45: 2
Индекс 96: 66
....
Yandex
Объявления
15.02.2013, 23:20     Отсортировать массив с хаотическим индексом
Ответ Создать тему
Опции темы

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