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

Дано массивы. Посортировать их указанным в соответствии с вариантом методами - C++

Восстановить пароль Регистрация
 
baykonurr
10 / 10 / 0
Регистрация: 19.02.2013
Сообщений: 85
04.10.2013, 18:29     Дано массивы. Посортировать их указанным в соответствии с вариантом методами #1
Даны два одномерные массивы А (a [1], [2], ..., a [n]) и B (b [1], b [2], ..., b [m]) размеры которых равны n и m соответственно. Посортировать их указанным в соответствии с вариантом методами. Упорядоченные массивы слить в массив С (с [1], с [2], ..., с [n + m]).

http://s5.hostingkartinok.com/upload...abf4ef7e50.png

Помогите пожалуйста хоть что-нибудь, заранее благодарен! Спасибо! ! !
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.10.2013, 18:29     Дано массивы. Посортировать их указанным в соответствии с вариантом методами
Посмотрите здесь:

Реализовать контейнерный класс в соответствии с вариантом задания C++
C++ Вставить символ рядом с указанным символом в строку
C++ Решить СЛАУ многопоточным вариантом метода Гаусса
C++ Сортировка за указанным направлением
Вычислить значение функции на заданном интервале с указанным шагом C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Alexdemath
 Аватар для Alexdemath
125 / 122 / 6
Регистрация: 11.04.2010
Сообщений: 253
04.10.2013, 22:13     Дано массивы. Посортировать их указанным в соответствии с вариантом методами #2
Цитата Сообщение от baykonurr Посмотреть сообщение
Даны два одномерные массивы А (a [1], [2], ..., a [n]) и B (b [1], b [2], ..., b [m]) размеры которых равны n и m соответственно. Посортировать их указанным в соответствии с вариантом методами. Упорядоченные массивы слить в массив С (с [1], с [2], ..., с [n + m]).
Что-то типа

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
int Sorts(int a[], int b[], int n, int m)
{
    for (int i = 1; i < n; i++)   // Сортировка a вставками
     { int t = a[i];
       for (int j = i; j > 0 && t < a[j-1]; j--)
        { a[j] = a[j-1]; }
       a[j] = t;
     }
 
    for (int i = 0; i < m-1; i++)  // Сортировка b выбором мин.элемента
     { int min = i;
       for (int j = i+1; j < m; j++)
        { if (b[j] < b[min]) min = j; }
       if (min != i)
        { int t = b[i]; b[i] = b[min]; b[min] = t;}
     }
     
    int c[n+m];
     
    for (int i = 0, j = 0, k = 0; k < n+m; k++)  // Слияние a и b в c
     { if (i == n){ c[k] = b[j++]; continue; }
       if (j == m){ c[k] = a[i++]; continue; }
       c[k] = (a[i] < b[j]) ? a[i++] : b[j++];
     }
  
    return c;
}
baykonurr
10 / 10 / 0
Регистрация: 19.02.2013
Сообщений: 85
04.10.2013, 22:42  [ТС]     Дано массивы. Посортировать их указанным в соответствии с вариантом методами #3
Цитата Сообщение от Alexdemath Посмотреть сообщение
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
int Sorts(int a[], int b[], int n, int m)
{
* * for (int i = 1; i < n; i++) * // Сортировка a вставками
* * *{ int t = a[i];
* * * *for (int j = i; j > 0 && t < a[j-1]; j--)
* * * * { a[j] = a[j-1]; }
* * * *a[j] = t;
* * *}
for (int i = 0; i < m-1; i++) *// Сортировка b выбором мин.элемента
* * *{ int min = i;
* * * *for (int j = i+1; j < m; j++)
* * * * { if (b[j] < b[min]) min = j; }
* * * *if (min != i)
* * * * { int t = b[i]; b[i] = b[min]; b[min] = t;}
* * *}
int c[n+m];
for (int i = 0, j = 0, k = 0; k < n+m; k++) *// Слияние a и b в c
* * *{ if (i == n){ c[k] = b[j++]; continue; }
* * * *if (j == m){ c[k] = a[i++]; continue; }
* * * *c[k] = (a[i] < b[j]) ? a[i++] : b[j++];
* * *}
return c;
}
не компилюеться(
Alexdemath
 Аватар для Alexdemath
125 / 122 / 6
Регистрация: 11.04.2010
Сообщений: 253
05.10.2013, 18:37     Дано массивы. Посортировать их указанным в соответствии с вариантом методами #4
baykonurr, так это только расчетная часть Вашего задания.
Нужно ещё оформить ввод-вывод, что, думаю, Вы осилите самостоятельно.

Добавлено через 19 часов 45 минут
Вот так (с учётом условий на картинке) должно работать

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
#include <iostream>
using namespace std;
 
 
void SortsAndMerge(int a[], int b[], int c[], int n, int m)
{
    for (int i = 1; i < n; i++)   // Сортировка a вставками
     { int j, t = a[i];
       for (j = i; j > 0 && t < a[j-1]; j--)
        { a[j] = a[j-1]; }
       a[j] = t;
     }
 
    for (int i = 0; i < m-1; i++)  // Сортировка b выбором мин.элемента
     { int min = i;
       for (int j = i+1; j < m; j++)
        { if (b[j] < b[min]) min = j; }
       if (min != i)
        { int t = b[i]; b[i] = b[min]; b[min] = t;}
     }
 
    for (int i = 0, j = 0, k = 0; k < n+m; k++)  // Слияние a и b в c
     { if (i == n){ c[k] = b[j++]; continue; }
       if (j == m){ c[k] = a[i++]; continue; }
       c[k] = (a[i] < b[j]) ? a[i++] : b[j++];
     }
}
 
int main()
{
    setlocale(0, ""); 
 
    int a[] = {7, 4, 0, 7, 5, -4, -9, 0, 1, 1, 2, -2, 5, 0},
        b[] = {2, 3, 6, 8, 15, -5}, n = 14, m = 6,
        c[20], k = 20;
 
    cout << "a = {";
    for(int i = 0; i < n-1; ++i) cout << a[i] << ", ";
    cout << a[n-1] << "}\n" << "b = {";
    for(int i = 0; i < m-1; ++i) cout << b[i] << ", ";
    cout << b[m-1] << "}\n\n";
    cout << "Размер a: n = " << n << "\n";
    cout << "Размер b: m = " << m << "\n\n";
 
    SortsAndMerge(a, b, c, n, m);
 
    cout << "Сортировка массивов a и b:\n\n";
    cout << "a = {";
    for(int i = 0; i < n-1; ++i) cout << a[i] << ", ";
    cout << a[n-1] << "}\n";
    cout << "b = {";
    for(int i = 0; i < m-1; ++i) cout << b[i] << ", ";
    cout << b[m-1] << "}\n\n";
    
    cout << "Слияние массивов a и b в массив c:\n\n";
    cout << "c = {";
    for(int i = 0; i < k-1; ++i) cout << c[i] << ", ";
    cout << c[k-1] << "}\n\n";
    cout << endl;
 
    return 0;
}
Yandex
Объявления
05.10.2013, 18:37     Дано массивы. Посортировать их указанным в соответствии с вариантом методами
Ответ Создать тему
Опции темы

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