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

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

Восстановить пароль Регистрация
 
dooml
1 / 1 / 0
Регистрация: 06.02.2013
Сообщений: 15
14.02.2013, 21:21     Отсортировать массив с хаотическим индексом #1
К примеру у нас есть массив из 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     Отсортировать массив с хаотическим индексом
Посмотрите здесь:

Вычислить y= k14− 18 k для 6 значений k, вводимых с клавиатуры. Результат вычислений записать в массив. Полученный массив отсортировать по возрастанию C++
C++ Отсортировать массив
C++ Массив: отсортировать массив в порядке возрастания и найти количество соседних пар элементов отличающихся между собой
C++ 2)Дан массив из N целых чисел. Получить из него массив отрицательных чисел и отсортировать его по возрастанию методом выбора
C++ 2)Дан массив из N целых чисел. Получить из него массив отрицательных чисел и отсортировать его по возрастанию методом выбора
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Troll_Face
 Аватар для Troll_Face
599 / 399 / 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 / 50
Регистрация: 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     Отсортировать массив с хаотическим индексом
Ответ Создать тему
Опции темы

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