Отсортировать одномерный массив в порядке возрастания, используя метод пузырька - C (СИ)
Формулировка задачи:
Здравствуйте, помогите написать вот такую программу.
Заполнить одномерный массив с клавиатуры. Отсортировать одномерный массив в порядке возрастания, используя метод пузырька процесс сортировки отображать на экране в конце вывести отсортированный массив.
Решение задачи: «Отсортировать одномерный массив в порядке возрастания, используя метод пузырька»
textual
Листинг программы
#include<iostream>
using namespace std;
void Filling (int a[], int s);
void Sort_bubble (int a[], int s);
void Show (int a[], int s);
void main (){
setlocale (LC_ALL, "Rus");
const int s=5;
int a[s];
Filling (a,s);
Sort_bubble (a,s);
Show (a,s);
}
void Filling (int a[], int s){
// заполнение массива
for(int i=0; i<s; i++){
cout<<"Введите элемент №"<<i+1<<" - ";
cin>>a[i];
}
}
void Sort_bubble (int a[], int s){
for(int i=0; i<s; i++){
for(int q=s-1; q>i; q--){
if(a[q-1]>a[q]){
cout<<"Меняем местами "<<a[q]<<" и "<<a[q-1]<<"\n";
int temp=a[q];
a[q]=a[q-1];
a[q-1]=temp;
}
}
}
}
void Show (int a[], int s){
cout<<"\nОтсортированный массив:\n";
for(int i=0; i<s; i++)
cout<<a[i]<<" ";
cout<<"\n";
}
Объяснение кода листинга программы
- #include
- подключает библиотеку для работы с потоками ввода-вывода - using namespace std; - позволяет использовать стандартное пространство имен std
- void Filling (int a[], int s); - объявляет функцию Filling, которая заполняет массив a значениями, считываемыми с помощью ввода с клавиатуры
- void Sort_bubble (int a[], int s); - объявляет функцию Sort_bubble, которая сортирует массив a методом пузырька
- void Show (int a[], int s); - объявляет функцию Show, которая выводит отсортированный массив на экран
- void main (){ - объявляет функцию main, которая является точкой входа в программу
- setlocale (LC_ALL,
Rus); - устанавливает русскую локаль для корректного вывода кириллических символов - const int s=5; - объявляет константу s, определяющую размер массива
- int a[s]; - объявляет одномерный массив a динамической длины, размер которого определяется константой s
- Filling (a,s); - вызывает функцию Filling для заполнения массива a
- Sort_bubble (a,s); - вызывает функцию Sort_bubble для сортировки массива a
- Show (a,s); - вызывает функцию Show для вывода отсортированного массива на экран
- for(int i=0; i<s; i++){ - начинает цикл for, выполняющийся s раз, где i - переменная-счетчик
- cout<<
Введите элемент №<<i+1<<-; - выводит на экран приглашение для ввода элемента массива с указанием его номера - cin>>a[i]; - считывает введенное значение и сохраняет его в элементе массива с индексом i
- for(int q=0; q<s; q++){ - начинает цикл for, выполняющийся s раз, где q - переменная-счетчик
- for(int q=s-1; q>i; q--){ - вложенный цикл for, выполняющийся s-1 раз, где q - переменная-счетчик, уменьшающаяся на единицу на каждой итерации внешнего цикла
- if(a[q-1]>a[q]){ - условие, если выполняется, то происходит перестановка элементов массива
- int temp=a[q]; - временная переменная для хранения элемента массива, который будет заменен
- a[q]=a[q-1]; - замена элементов массива
- a[q-1]=temp; - восстановление исходного значения элемента массива
- cout<<
Меняем местами<<a[q]<<и<<a[q-1]<<\n; - вывод на экран информации о произведенной перестановке - cout<<
\nОтсортированный массив:\n; - вывод на экран приглашения для вывода отсортированного массива - for(int i=0; i<s; i++) - начинает цикл for, выполняющийся s раз, где i - переменная-счетчик
- cout<<a[i]<<
; - вывод на экран значения элемента массива, отделенного пробелами от других значений - cout<<
\n; - завершает вывод на экран информации о массиве