Сортировка массива методом пузырька - C (СИ)
Формулировка задачи:
Задание
: объявляем одномерный массив целого типа, размера не менее 15 этот массив необходимо заполнить с помощью интегратора случайных чисел. информацию сортируют методом пузырька, элементы с четными индексами отсортированный по убыванию, с нечетными по возрастанию.Подскажите где? и какая ошибка? Препод говорит, что я сортировку не доделал...
#include <iostream>
#include <iomanip>
#include <ctime>
int main()
{
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() % 20;\\массив I рандомно заполняется целыми числами
std::cout << std::setw(3) << MAS[i]; // выводим на экран массив
}
std::cout << std::endl;
int tmp;
for (int i=0; i < N; i++) // фильтруем массив методом пузыркя, сравнивая элемент с предыдущем и если меньше меняем местами
for (int j=N-1; j > i; j-- )
if ( MAS[j-1] < MAS[j] )
{
tmp=MAS[j-1]; MAS[j-1]=MAS[j]; MAS[j]=tmp;
}
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;
}Решение задачи: «Сортировка массива методом пузырька»
textual
Листинг программы
#include <iostream>
#include <time.h>
#include <locale>
using std::cout;
using std::cin;
using std::endl;
using std::swap;
int main()
{
setlocale(LC_ALL, "rus");
srand(time(0));
//Инициализация и вывод
int Arr[16];
for (int i = 1; i < 16; i++)
{
Arr[i] = rand() % 21;
cout << Arr[i] << ' ';
}
cout << endl;
//Сортировка
for (int i = 14; i > 1; i--)
for (int j = 1; j < i; j+=2)
if (Arr[j] > Arr[j+2])
swap(Arr[j], Arr[j+2]);
for (int i = 14; i > 1; i--)
for (int j = 2; j < i; j+=2)
if (Arr[j] < Arr[j+2])
swap(Arr[j], Arr[j+2]);
//Вывод полученного
for (int i = 1; i < 16; i++)
cout << Arr[i] << ' ';
cout << endl;
return 0;
}