В пузырьковой сортировке посчитать количество перестановок и сравнения - C (СИ)
Формулировка задачи:
В пузырьковой сортировке посчитать количество перестановок и сравнения
//point.c # include "point.h" void bubble_sort(int *arr, int n) { int i, j, t, flag; for (i=0; i<n-1; i++) { flag=0; for(j=0;j<n-1-i; j++) if (arr[j]>arr[j+1]) { flag=0; t=arr[j+1]; arr[j+1]=arr[j]; arr[j]=t; } if(flag!=0) break; } } void print_arr (int *arr, int n) { int i; for(i=0; i<n; i++) printf("%i", arr[i]); } //point.h # include <stdio.h> void bubble_sort(int *arr, int n); void print_arr (int *arr, int n); //main.c #include "point.h" int main () { int arr[]={9,5,8,6,3,7,1}; print_arr(arr, sizeof arr/sizeof(int)); bubble_sort(arr, sizeof arr/sizeof(int)); printf("\n"); print_arr(arr, sizeof arr/sizeof(int)); return 0; }
Решение задачи: «В пузырьковой сортировке посчитать количество перестановок и сравнения»
textual
Листинг программы
#include <stdio.h> int counter; void bubble_sort(int *arr, int n) { int j, t, flag; while (1) { flag=0; for(j=0;j<n-1;j++) if (arr[j]>arr[j+1]) { flag=-1; counter++; t=arr[j+1]; arr[j+1]=arr[j]; arr[j]=t; } if(flag==0) break; } } void print_arr(int *arr, int n) { int i; for (i=0; i<n; i++) printf("%d ",arr[i]); printf("\n"); } int main(int argc, char* argv[]) { int Arr[12]={1,2,3,1,2,3,1,2,3,1,2,3}; counter=0; print_arr(Arr,12); bubble_sort(Arr,12); print_arr(Arr,12); printf("\ncounter=%d\n",counter); return 0; }
Объяснение кода листинга программы
- Объединение файлов .h и .c
- Объявление переменных:
- counter - для подсчета количества перестановок
- Arr - массив для сортировки
- Реализация пузырьковой сортировки:
- j, t, flag - вспомогательные переменные
- флаг устанавливается в 0 перед каждой итерацией
- если текущий элемент больше следующего, то:
- меняется флаг на -1
- увеличивается счетчик перестановок
- текущий элемент меняется местами с предыдущим
- Реализация вывода массива на экран
- В функции main():
- инициализация массива Arr
- вывод массива на экран до сортировки
- вызов функции сортировки
- вывод массива на экран после сортировки
- вывод значения счетчика перестановок
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д