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

Отсортируйте в массиве положительные элементы по возрастанию, отрицательные – по убыванию - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Графика + консоль. Как? http://www.cyberforum.ru/cpp-beginners/thread1494133.html
Вечер добрый! Подскажите как в С++ сделать графическое меню, с фоновой картинкой и прочими плюшками. А при нажатии на кнопку "Играть" вызывалась консольная игрушка (морской бой). Сама игрушка уже...
C++ Что значит ":" после параметров функции CSimpleString::CSimpleString(const char* p) : len(0), buff(nullptr) Что значит len(0), buff(nullptr) и как это называется ? http://www.cyberforum.ru/cpp-beginners/thread1494132.html
Отличие классов stack<> и forward_list<> C++
В чем отличие классов stack<> и forward_list<>?
Одномерные массивы: задачи сортировок элементов массива C++
Задание: Отсортируйте в массиве положительные элементы по возрастанию, отрицательные – по убыванию. Использовать три метода сортировки. в конце нужно сделать примерно так: массив: -2, 0, 5, -4, 6,...
C++ Составить программу для вычисления суммы n членов http://www.cyberforum.ru/cpp-beginners/thread1494101.html
Составить программу для вычисления суммы n членов ряда согласно условию Добавлено через 8 минут x+\frac{{x}^{5}}{5!}+\frac{{x}^{9}}{9!}+\frac{{x}^{13}}{13!}+...
C++ Написать блок-схему и программу вычисления функции на заданном промежутке и построить график этой функции написать блок-схему и программу вычисления функции на за- данном промежутке с шагом 0.2 и построить график этой функции. подробнее

Показать сообщение отдельно
adiiiik
0 / 0 / 0
Регистрация: 09.04.2015
Сообщений: 42

Отсортируйте в массиве положительные элементы по возрастанию, отрицательные – по убыванию - C++

06.07.2015, 19:28. Просмотров 464. Ответов 1
Метки (Все метки)

Задание: Отсортируйте в массиве положительные элементы по возрастанию, отрицательные – по убыванию. Использовать три метода сортировки.

в конце нужно сделать примерно так: массив: -2, 0, 5, -4, 6, 1; отсортированный массив: -2, 0, 0, -4, 5, 6;
как это сделать?

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
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
#include <iostream>
#include <cmath>
#include <iomanip>
 
using namespace std;
void Vvod(int* arrA,int n)
{
    for(int i=0;i<n;i++)
    {
        cout<<"arrA["<<i<<"]= ";
        cin >> arrA[i];
    }
}
void Print(int *arrA, int n)
{
    //cout<<"\nMassiv = ";
    for(int i = 0; i < n ;i++)
    {
        cout<<arrA[i]<< ", ";
    }
    cout<<endl;
}
void BubbleSortVozr(int *arrA, int n) //сортировка по возрастанию пузырек
{
    int pol=0;
    for(int i = 0; i < n - 1; ++i)
    {
        for(int j = 0; j < n - 1; ++j)
        {
            if (arrA[j + 1] < arrA[j])
            {
                pol = arrA[j + 1];
                arrA[j + 1] = arrA[j];
                arrA[j] = pol;
            }
        }
    }}
void BubbleSortUb(int* arrA, int n){ //сортировка по убыванию пузырек
    int otr = 0;
    for(int i = 0; i < n - 1; ++i)
    {
        for(int j = 0; j < n - 1; ++j)
        {
            if (arrA[j + 1] > arrA[j])
            {
                otr = arrA[j + 1];
                arrA[j + 1] = arrA[j];
                arrA[j] = otr;
            }
        }
    }
}
void SelectionSortPol (int* arrA, int n) { // сортировка методом простого выбора по возрастанию
  int min,pol;
  for (int i=0;i<n-1;i++) {
  min=i;
    for (int j=i+1;j<n;j++){
      if (arrA[j]<arrA[min])
        min=j;
     }
      pol=arrA[i];
      arrA[i]=arrA[min];
      arrA[min]=pol;
  }
}
void SelectionSortOtr (int* arrA, int n) { // сортировка методом простого выбора по убыванию
  int min,otr;
  for (int i=0;i<n-1;i++) {
  min=i;
    for (int j=i+1;j<n;j++){
      if (arrA[j]>arrA[min])
        min=j;
     }
      otr=arrA[i];
      arrA[i]=arrA[min];
      arrA[min]=otr;
  }
}
// сортировка методом простого включения по возраст
void InsertSortPol (int* arrA,int  n) {
  int  pol, j;
  for (int i=0;i<n;i++) {
    pol=arrA[i];
    for (int j=i-1; j>=0 && arrA[j]>pol; j--)
      arrA[j+1]=arrA[j];
      arrA[j+1]=pol;
  }
}
void InsertSortOtr (int* arrA,int  n) {
  int  otr, j;
  for (int i=0;i<n;i++) {
      otr=arrA[i];
    for (int j=i-1; j>=0 && arrA[j]<otr; j--)
      arrA[j+1]=arrA[j];
      arrA[j+1]=otr;
  }
}
int main()
{
    int arrA[100], n,Pol[100], Otr[100],pol=0, otr=0;
    cout << "Vvedite razmernost massivov: ";
    cin >> n;
    Vvod(arrA, n);
    Print(arrA, n);
    for (int i=0; i<n; i++)
        if (arrA[i]>=0)
        {Pol[pol]=arrA[i];
            pol++;
        }
        else
        {
            Otr[otr]=arrA[i];
            otr++;
        }
 
    BubbleSortVozr(Pol,pol);
    cout << "\nMetod puzirka: ";
    cout << "\nPologitelnie elementy po vozrastaniyu: " ; Print(Pol,pol);
    BubbleSortUb(Otr,otr);
    cout << "Otricatelnie elementy po ubivaniu: " ; Print(Otr, otr);
    SelectionSortPol(Pol, pol);
    cout << "\n\nMetod prostogo vibora:";
    cout << "\nPologitelnie elementy po vozrastaniyu: " ; Print(Pol,pol);
    SelectionSortOtr(Otr, otr);
    cout << "Otricatelnie elementy po ubivaniu: " ; Print(Otr,otr);
 InsertSortPol(Pol, pol);
 cout << "\n\nMetod prostogo vklucheniya:";
 cout << "\nPologitelnie elementy po vozrastaniyu: " ; Print(Pol,pol);
 InsertSortOtr(Otr, otr);
 cout << "Otricatelnie elementy po ubivaniu: " ; Print(Otr,otr);
 
 
 for (int i=0; i<n; i++)
     for (int j=0; j<n;j++)
         for (int u=0;u<n;u++)
     {if (arrA[i]> 0 && Pol[j]>0 && arrA[i]> Pol[j])
 arrA[i]=Pol[j];
if (arrA[i] < 0 && Otr[u]<0 && arrA[i]<Otr[u])
         arrA[i]= Otr[u];}
 
 Print(arrA,n);
 
 
 
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru