Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
6o6ep4ik
-9 / 0 / 1
Регистрация: 23.10.2015
Сообщений: 175
1

Сортировка массива

10.12.2015, 19:57. Просмотров 163. Ответов 2
Метки нет (Все метки)

Нам задан числовой массив А[1:m, 1:n]. Нужно построить одномерный массив, в котором числа идут по определенному закону: >-10 и <10; >10; <-10; все остальные.
Если нужно сортировать одномерный массив, как это реализовать в 3 закона?
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
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
#include<iostream>
using namespace std;
int main()
{
    setlocale(LC_ALL, "Russian");
    const int str = 3;
    const int stolb = 6;
    int mass[str][stolb] =
    {
        { 11,13,15,17,20,12 },
        { -8,8,7,-7,6,-6 },
        {-12,-11,-14,-13,-15,-17}
        
    };
    int temp;
    for (int i = 0; i <= (str*stolb); i++)
    {
        for (int i = 0; i<1; i++) // >-10 & <10
        {
            for (int j = 0; j<stolb - 1; j++)
            {
                if (mass[i][j]>mass[i][j + 1])
                {
                    temp = mass[i][j];
                    mass[i][j] = mass[i][j + 1];
                    mass[i][j + 1] = temp;
                }
            }
        }
 
        for (int i = 1; i < 2; i++) // >10
        {
            for (int j = 0; j<stolb - 1; j++)
            {
                if (mass[i][j]>mass[i][j + 1])
                {
                    temp = mass[i][j];
                    mass[i][j] = mass[i][j + 1];
                    mass[i][j + 1] = temp;
                }
            }
        }
 
        for (int i = 2; i < 3; i++) // <-10
        {
            for (int j = 0; j<stolb - 1; j++)
            {
                if (mass[i][j]>mass[i][j + 1])
                {
                    temp = mass[i][j];
                    mass[i][j] = mass[i][j + 1];
                    mass[i][j + 1] = temp;
                }
            }
        }
 
        for (int x = 0; x<stolb; x++)
        {
            for (int z = 0; z<1; z++)
            {
                if (mass[z][x]>mass[z][x + 1])
                {
                    temp = mass[z][x];
                    mass[z][x] = mass[z][x + 1];
                    mass[z][x + 1] = temp;
                }
            }
        }
 
    }
    cout << "После сортировки:""\n\n";
    for (int i = 0; i<str; i++)
    {
        for (int j = 0; j<stolb; j++)
        {
            cout << mass[i][j] << "\t";
        }
        cout << "\n\n";
    }
    int odnommass[str*stolb]; 
    int index = 0;
    for (int i = 0; i<=str; i++)
    {
        for (int j = 0; j<stolb; j++)
        {
            odnommass[index] = mass[i][j];
            index++;
        }
    }
    cout << "Одномерный массив ""\n\n";
    for (int i = 0; i<str*stolb; i++)
        cout << odnommass[i] << "\t";
    cout << "\n\n";
    system("pause");
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.12.2015, 19:57
Ответы с готовыми решениями:

Быстрая сортировка(сортировка Хоара). Отсортировать фрагмент массива
Мне нужно отсортировать фрагмент массива, расположенный между первым и...

Сортировка массива: перенести положительные числа в начало, а отрицательные - в конец массива
Дан вещественный массив A(N). Отсортировать его таким образом, чтобы все...

Сортировка массива. Ошибка после ввода размерности массива
подскажите почему после ввода размерности массива выдает ошибку...

Сортировка массива структур через сортировку массива указателей
Ошибка возникает в функции void sort(student **ppStud, int k, char ch). Кто...

Сортировка массива, вместо массива выводит мусор
Здравствуйте Уважаемые жители форума! Есть рабочий код сортируем массив...

2
nmcf
6274 / 5577 / 2537
Регистрация: 14.04.2014
Сообщений: 23,468
10.12.2015, 21:11 2
Не надо его сортировать. Просто делаешь несколько проходов и в каждом выбираешь нужный диапазон, добавляя элементы в конец.
0
Dimension
Dimension
573 / 443 / 221
Регистрация: 08.04.2014
Сообщений: 1,709
Завершенные тесты: 1
10.12.2015, 22:13 3
под двумерный сам переделайте
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
#include <bits/stdc++.h>
using namespace std;
int main() {
    srand(time(0));
    const int S = 15;
    int a[15],smal=1,large=0;
    int b[15],c1=0,c2=0;
    for (int i = 0;i < S;i++) {
        a[i] = rand() % 20, cout << a[i] << " ";
        if (a[i] > 10)c1++;
        else c2++;
    }
    //cout <<endl<< c1 << " " << c2 << endl;
    cout << endl;
    int k1, k2;k1 = k2 = min(c1, c2);
    for (int i = 0;i < S;i++) {
        if (k1 && a[i] > 10)
            b[large] = a[i], k1--, large += 2;
        if (k2 && a[i] <= 10)
            b[smal] = a[i], k2--, smal += 2;
    }
    for (int i = 0;i < min(c2, c1) * 2;i++)
        cout << b[i] << " ";
    cin.get(), cin.get();
    return 0;
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
10.12.2015, 22:13

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

сортировка массива
здравствуйте, посоветуйте пожалуйста, каким образом можно сортировать двумерный...

Сортировка массива
У меня есть цель наклепать сортировку с помощью (1)прямого выбора и и...


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

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

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