BubbleSort - C (СИ)
Формулировка задачи:
Напишите пожалуйста функцию сортировки бульбашкой. Спасибо
Решение задачи: «BubbleSort»
textual
Листинг программы
#define SWAP(A, B) { int t = A; A = B; B = t; }
void bubblesort(int *a, int n)
{
int i, j;
for (i = n - 1; i > 0; i--)
{
for (j = 0; j < i; j++)
{
if (a[j] > a[j + 1])
SWAP( a[j], a[j + 1] );
}
}
}
Объяснение кода листинга программы
- Предопределенный макрос SWAP используется для обмена значениями двух переменных типа int.
- Входные параметры функции bubblesort: a - указатель на массив целых чисел, n - количество элементов в массиве.
- Внутри функции объявлены две переменные i и j типа int, которые будут использоваться в двух вложенных циклах.
- Внешний цикл for выполняется n-1 раз, начиная с n-1 и заканчивая 1.
- Внутренний цикл for выполняется i раз, начиная с 0 и заканчивая i-1.
- Если a[j] больше a[j+1], то с помощью функции SWAP значения этих двух элементов меняются местами.
- Функция bubblesort сортирует массив по возрастанию.