Сортировка массива методом пузырька - 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;
}

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.667 из 5
Похожие ответы