Asakurbi4, ну что-то вроде этого, но только лучше направление сортировки поменять, а то выходит путаница и когда чётное количество элементов, то чётные сортируются по убывание, а когда нечётное количество элементов, то на возрастание. Поэтому, лучше поменяйте направление.
Код | #include <iostream> #include <iomanip> #include <cstdlib> #include <ctime>
template <typename T> void Swap(T& a, T& b) { T buff = a; a = b; b = buff; }
int main() { srand(time(NULL)); setlocale(LC_ALL, "Russian"); // ставится какой-то язык
int N; // переменная N - целая std::cout << "Введите кол-во элементов массива: "; std::cin >> N; int* MAS = new int [N]; // Массив размера N std::cout << "Первоначальный массив: " << std::endl; for (int i = 0; i < N; i++) // заполняем случайнми числами, { MAS[i] = rand()%89 + 10; //массив I рандомно заполняется целыми числами std::cout << std::setw(3) << MAS[i]; // выводим на экран массив } std::cout << std::endl;
for (int i = 0; i < N; i += 2) { for (int j = N-1; j > i; j -= 2) { if (MAS[j-2] < MAS[j]) { Swap(MAS[j-2], MAS[j]); } } }
for (int i = 1; i < N; i += 2) { for (int j = N-2; j > i; j -= 2) { if (MAS[j-2] > MAS[j]) { Swap(MAS[j-2], MAS[j]); } } } std::cout << "Отсортированный массив: " << std::endl; // и выводим его на экран. for (int i = 0; i < N; i++) { std::cout << std::setw(3) << MAS[i]; }
std::cout << std::endl; delete [] MAS; system("pause"); return 0; }
|
Добавлено через 8 минут и 27 секунд Т.е. как-то так:
Код | #include <iostream> #include <iomanip> #include <cstdlib> #include <ctime>
template <typename T> void Swap(T& a, T& b) { T buff = a; a = b; b = buff; }
int main() { srand(time(NULL)); setlocale(LC_ALL, "Russian"); // ставится какой-то язык
int N; // переменная N - целая std::cout << "Введите кол-во элементов массива: "; std::cin >> N; int* MAS = new int [N]; // Массив размера N std::cout << "Первоначальный массив: " << std::endl; for (int i = 0; i < N; i++) // заполняем случайнми числами, { MAS[i] = rand()%89 + 10; //массив I рандомно заполняется целыми числами std::cout << std::setw(3) << MAS[i]; // выводим на экран массив } std::cout << std::endl;
for (int i = N-2; i > 0 ; i -= 2) { for (int j = 0; j < i; j += 2) { if (MAS[j] > MAS[j+2]) { Swap(MAS[j], MAS[j+2]); } } }
for (int i = N-1; i > 0 ; i -= 2) { for (int j = 1; j < i; j += 2) { if (MAS[j] < MAS[j+2]) { Swap(MAS[j], MAS[j+2]); } } }
std::cout << "Отсортированный массив: " << std::endl; // и выводим его на экран. for (int i = 0; i < N; i++) { std::cout << std::setw(3) << MAS[i]; }
std::cout << std::endl; delete []MAS; system("pause"); return 0; }
|
|