Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/2: Рейтинг темы: голосов - 2, средняя оценка - 5.00
0 / 0 / 1
Регистрация: 24.12.2013
Сообщений: 23
1

Упорядочить одномерный массив

17.01.2014, 12:59. Просмотров 468. Ответов 6
Метки нет (Все метки)

Необходимо упорядочить одномерный массив случайных чисел в таком порядке, сначала возрастающие четные элементы затем возрастающие нечетные элементы. Например 3 6 1 7 8 10 = 6 8 10 1 3. Подскажите как это сделать...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.01.2014, 12:59
Ответы с готовыми решениями:

Упорядочить одномерный массив
Доброго времени суток! Подскажите, пожалуйста, как сделать такое задание(срочно). Составить...

Нужно упорядочить одномерный массив
Помогите плиз. Нужно упорядочить одномерный массив. Я знаю как это сделать, но нужно использовать...

Упорядочить одномерный массив по возрастанию
С клавиатуры вводится одномерный массив длинной 10 символов. Упорядочить массив по возрастанию

Как упорядочить одномерный массив по возрастанию?
Есть массив X(n), как упорядочить его по возростанию?

6
Эксперт С++
1889 / 1237 / 354
Регистрация: 16.05.2013
Сообщений: 3,239
Записей в блоге: 6
17.01.2014, 13:30 2
Думаю рандомное заполнение вектора вы сами напишите:
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
#include<iostream>
#include<vector>
#include<iterator>
class IsEven
{
public:
    bool operator() (int number)
    {
        return !(number%2);
    }
};
int main()
{
    std::vector<int> mass;
 
    mass.push_back(1);
    mass.push_back(2);
    mass.push_back(3);
    mass.push_back(4);
    mass.push_back(5);
    mass.push_back(6);
 
    std::vector<int>::iterator iter = std::partition(mass.begin(), mass.end(), IsEven());
    std::sort(mass.begin(), iter);
    std::sort(iter, mass.end());
    std::copy(mass.begin(), mass.end(), std::ostream_iterator<int>(std::cout, " "));
    return 0;
}
0
14 / 12 / 12
Регистрация: 23.12.2013
Сообщений: 84
17.01.2014, 13:31 3
Цитата Сообщение от sabich Посмотреть сообщение
Необходимо упорядочить одномерный массив случайных чисел в таком порядке, сначала возрастающие четные элементы затем возрастающие нечетные элементы. Например 3 6 1 7 8 10 = 6 8 10 1 3. Подскажите как это сделать...
можно завести 2 массива - с четными и нечетными числами. отсортировать их известными способами.Алгоритмы сортировок. затем объединить в начальный массив.
0
0 / 0 / 1
Регистрация: 24.12.2013
Сообщений: 23
17.01.2014, 16:24  [ТС] 4
Ilot, нужно не векторное заполнение массива, а именно сортировка.

Добавлено через 58 секунд
school_bot, а примерчик можно например используя сортировку выбором.
0
Эксперт С++
1889 / 1237 / 354
Регистрация: 16.05.2013
Сообщений: 3,239
Записей в блоге: 6
17.01.2014, 16:50 5
Цитата Сообщение от sabich Посмотреть сообщение
Ilot, нужно не векторное заполнение массива, а именно сортировка.
Ну если вы читать код не умеете объясню:
C++
1
2
3
4
5
6
7
8
   //Делим массив на две части. Первая четные числа, вторая нечетные. Возвращаем разделитель итератору iter
    std::vector<int>::iterator iter = std::partition(mass.begin(), mass.end(), IsEven());
    //Сортируем четные числа
    std::sort(mass.begin(), iter);
    //Сортируем нечетные числа
    std::sort(iter, mass.end());
    //Выводим результат  в консоль
    std::copy(mass.begin(), mass.end(), std::ostream_iterator<int>(std::cout, " "));
0
14 / 12 / 12
Регистрация: 23.12.2013
Сообщений: 84
17.01.2014, 17:04 6
примерчик уже есть. хотите проще - объявляйте 3 массива, используйте сортировки - можете взять с википедии, если не хотите принципиально пользоваться первой ссылкой и объединяйте массивы.
Цитата Сообщение от sabich Посмотреть сообщение
school_bot, а примерчик можно например используя сортировку выбором.
0
0 / 0 / 1
Регистрация: 24.12.2013
Сообщений: 23
18.01.2014, 16:33  [ТС] 7
Возможно я не правильно выразился, но нужно решить задачу с использованием только массивов, циклов и условий. Без всяких sort, vector и т.д. Так сказать изобрести велосипед заново.

Добавлено через 20 часов 13 минут
пришлось самому дойти до решения
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
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
# include <iostream>
# include <cstdlib>
# include <ctime>
using namespace std;
void main ()
{
    const int size=10;
    int arr[size], poz, ch, kolch=0, min;
    bool find;
    srand(time(NULL));
    for (int i=0;i<size;i++)    //Выводим текущий массив
    {
        arr[i]=rand()%11;
        cout << arr[i]<<" ";
    }
    cout << endl;
    for (int j=0; j<size; j++)  //Ищем четные числа и переставляем их в начало массива
    {
        find=false;
        if (arr[j]%2==0)
        {
            ch=arr[j];
            find=true;
        }
        for (int z=j+1; z<size;z++)
        {
            if (arr[z]%2 == 0)
            {
            ch=arr[z];
            poz=z;
            find=true;
            }
        }
        if (find==true)
        {
        arr[poz]=arr[j];
        arr[j]=ch;
        kolch++;
        }
    }
 
    for (int s=0;s<kolch;s++)           //Делаем перестановку четных чисел
    {
        min=arr[s];
        poz=s;
        for (int s2=s+1;s2<kolch;s2++)
        if (arr[s2]<min)
        {
        min=arr[s2];
        poz=s2;
        }
        arr[poz]=arr[s];
        arr[s]=min;
    }
 
    for (int s=kolch;s<size;s++)            //Делаем перестановку нечетных чисел
    {
        min=arr[s];
        poz=s;
        for (int s2=s+1;s2<size;s2++)
        if (arr[s2]<min)
        {
        min=arr[s2];
        poz=s2;
        }
        arr[poz]=arr[s];
        arr[s]=min;
    }
 
    for (int i=0;i<size;i++)            //Выводим результат
    {
        cout << arr[i]<<" ";
    }
    cout << endl;
}
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.01.2014, 16:33

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Одномерный массив 10 символов.упорядочить по убыванию
С клавы вводится одномерный массив длинной 10 символов.Упорядочить массив по убыванию.

Упорядочить одномерный массив указателей на строки
Допустим у меня одномерный массив указателей на строки и они имеют как бы еще такие значения. ...

Упорядочить одномерный числовой массив по возрастанию методом выбора
Упорядочить одномерный числовой массив по возрастанию методом выбора. При этом выбирается...

Дан одномерный массив размером М. Упорядочить элементы с нечетными номерами по возрастанию
Всем день добрый! Помогите, пожалуйста с задачей на языке С++. , а с четными номерами по...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.