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

Программа для сортировки - C++

Восстановить пароль Регистрация
 
Manninger
0 / 0 / 0
Регистрация: 19.09.2013
Сообщений: 2
19.09.2013, 21:31     Программа для сортировки #1
Здраствуйте, необходимо написать программу в которуй будет 12 случайных элементов, затем нужно будет сложить рядом стоящие элементы, и отсортировать полученную сумму двух соседних, по возрастанию, пузырьковый метод, я пока написал только сортировку просто рядом стоящих чисел, но как сделать что бы складывались два соседних числа и сравнивать по их сумме незнаю, дополнительный массив не заводить.

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
#include <iostream>
using namespace std;
 
int main()
{
     // Считываем размер массива,
     // который необходимо отсортировать
     int size;
     cin >> size;
 
     // Динамически выделяем память под
     // хранение массива размера size
     int *a = new int[size];
    
     // Считываем массив
     for (int i = 0; i < size; i++)
     {
         cin >> a[i];
     }
 
     // Внешний цикл алгоритма совершает
     // ровно size итераций
     for (int i = 0; i < size; i++)
     {
         // Массив просматривается с конца до
         // позиции i и "легкие элементы всплывают"
         for (int j = size - 1; j > i; j--)
         {
             // Если соседние элементы расположены
             // в неправильном порядке, то меняем
             // их местами
             if (a[j] < a[j - 1])
             {
                 swap (a[j], a[j - 1]);
             }
         }
     }
 
     // Выводим отсортированный массив
     for (int i = 0; i < size; i++)
     {
         cout << a[i] << ' ';
     }
 
     return 0;
     getchar();
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.09.2013, 21:31     Программа для сортировки
Посмотрите здесь:

программа порозрядной сортировки C++
C++ Программа сортировки матрицы, работает только для квадратных
C++ Программа сортировки списка
Программа сортировки C++
C++ Составить блок – схемы для шейкер- сортировки и сортировки Шелла
C++ Составить программы для пузырьковой сортировки и сортировки посредством выбора с применением оператора while
C++ Напишите функцию сортировки, похожую на функцию которая использовалась для сортировки массивов, с той разницей, что ее а
Программа для сортировки массива строк C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
lipnev
60 / 60 / 1
Регистрация: 14.09.2013
Сообщений: 145
19.09.2013, 23:46     Программа для сортировки #2
Manninger, вот тебе сложение соседних элементов
C++
1
2
3
4
5
     int k, j;
     for (k = 0, j = 0; j < size; k++, j=k*2){
        a[k]=a[j]+a[j+1];
     }
     size=k;
Вставляешь сразу после цикла считывания массива. Проверял - работает. Кстати, зачем необходимо вводить размер массива с клавиатуры, инициализировать динамический массив и также заполнять его с клавиатуры. В задании чётко написано 12 элементов. То есть можно использовать статический массив. А для генерации случайных чисел можно использовать функции srand и rand.
Genn55
341 / 188 / 37
Регистрация: 26.12.2012
Сообщений: 658
20.09.2013, 01:08     Программа для сортировки #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
#include <iostream>
#include <stdlib.h>
#include <time.h>
 
using namespace std;
 
int main()
{
srand(time(NULL));
const int N =12; // размер массива
int a[N]; // объявление массива
 
    for (int i = 0; i < N; i++)
        a[i] = rand() % 15;
    for (int i = 0; i < N; i++)
        cout << a[i] << " ";
        cout<<"\n\n" ;
 
int M =0;
     for (int i = 0; i < N+2; i+=2)
     {
        M++;
        a[M]=a[i]+a[i+1];
     }
     for (int i = 0; i < M; i++)
      cout << a[i] << " ";
      cout<<"\n\n";
    for (int i = 1; i < M; i++)
    for (int j = 0; j < M - 1; j++)
       if (a[j] > a[j + 1])
         {
      int temp = a[j];
           a[j] = a[j + 1];
           a[j + 1] = temp;
         }
     for (int i = 0; i < M; i++)
      cout << a[i] << " ";
      cout<<"\n\n";
 
return 0;
}
Yandex
Объявления
20.09.2013, 01:08     Программа для сортировки
Ответ Создать тему
Опции темы

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