Сортировка массива по возрастанию метод пузырька - C (СИ)
Формулировка задачи:
подскажите так или не то совсем
а этот метод в С++ как его переделать на Си
#include <iostream>
#include <stdlib.h>
using namespace std;
int a[10],tmp;
for (int i=0;i<9;i++) {
a[i] = rand()%100;
cout << a[i] << "\t";
}
for (int i=0;i<9;i++)
for (int j=0; j<9;j++)
if (a[j] > a[j+1]) { ////рассматривается алгоритм сортировки по возрастанию
tmp = a[j];
a[j] = a[j+1];
a[j+1] = tmp;
}
cout << "\nОтсортированный массив: \n";
for (int i=0;i<9;i++)
сout << a[i] << "\t";
cout << "\n";#include "stdafx.h"
int _tmain(int argc, _TCHAR* argv[])
{
int arr[6] = {35, 8, 74, 1, 67, 7},i, flag;
for (;;){
flag = 0;
for (i = 5; i>0; i--){
if (arr[i] < arr[i-1]) {
swap (arr[i],arr[i-1]);
flag++;
}
}
if (flag == 0)
break;
}
return 0;
}Решение задачи: «Сортировка массива по возрастанию метод пузырька»
textual
Листинг программы
#include <stdio.h>
void bubble_sort(int *data, int size) {
int i, j;
for (i = 0; i < size; ++i) {
for (j = size - 1; j > i; --j) {
if (data[j] < data[j-1]) {
int t = data[j - 1];
data[j - 1] = data[j];
data[j] = t;
}
}
}
}
int main() {
int i = 0;
int data[] = { 5, 3, -1, 9, 0 };
bubble_sort(data, sizeof(data)/sizeof(data[0]));
for (i = 0; i < sizeof(data)/sizeof(data[0]); ++i) {
printf("%d ", data[i]);
}
return 0;
}
Объяснение кода листинга программы
- Подключение стандартной библиотеки для работы с файлами и вывода данных (stdio.h).
- В функции bubble_sort() происходит сортировка массива методом пузырька.
- Два вложенных цикла:
- Первый цикл перебирает все элементы массива от начала до конца.
- Второй цикл перебирает все элементы массива от конца до начала (для каждого элемента, начиная с последнего, проверяется, больше ли он следующего элемента).
- Если текущий элемент больше следующего, то они меняются местами.
- В функции main() создается массив data[] со значениями {5, 3, -1, 9, 0}.
- Вызывается функция bubble_sort() для сортировки массива data[].
- Результат сортировки выводится на экран через цикл for и функцию printf().
- Возврат 0 из функции main() означает успешный конец работы программы.