Переделать программу методом сортировки пузырька - C (СИ)
Формулировка задачи:
Помогите пожалуйста переделать программу методом сортировки пузырька. Буду очень благодарен)))
Листинг программы
- #include <stdio.h>
- int main(void)
- {
- int i, j=0, imax, a[10], b[10], *min, *max, *p;
- for(;;)
- {
- printf("Vvedite imax ");
- scanf("%d", &imax);
- if (imax<1||imax>10)
- printf("Error");
- else break;
- };
- for (i=0; i<=imax; i++) {
- printf("Vvedite a[%d] ", i);
- scanf("%d", &a[i]);
- };
- max=&a[0];
- for(i=0; i<=imax; i++) {
- if (&a[i]>max)
- max=&a[i];
- };
- min=&a[0];
- for(i=0; i<=imax; i++) {
- if (&a[i]<min)
- min=&a[i];
- };
- for (p=max; p>=min; p--) {
- for(i=0; i<=imax; i++) {
- if(&a[i]==p) {
- b[j]=i;
- j++;};
- };
- };
- for (j=0; j<=imax; j++)
- printf("%d", b[j]);
- getchar();
- getchar();
- return 0;
- }
Решение задачи: «Переделать программу методом сортировки пузырька»
textual
Листинг программы
- void sort(float *A,int count)
- {
- int flag=1;
- for(;flag==1;)
- {
- flag=0;
- for(int i=0;i<count-1;i++)
- {
- if(A[i]>A[i+1])
- {
- swap(&A[i],&A[i+1]);
- flag=1;
- }
- }
- }
- }
Объяснение кода листинга программы
- В функции sort(float *A,int count) на вход подается массив A и его размер count.
- Переменная flag инициализируется значением 1.
- Начинается цикл while(flag==1), который будет выполняться до тех пор, пока флаг не станет равным 0.
- Внутри цикла происходит еще один цикл for, который проходит по всем элементам массива, начиная с 0 и заканчивая count-1.
- Если текущий элемент массива A[i] больше следующего элемента A[i+1], то они меняются местами с помощью функции swap(&A[i],&A[i+1]) и флаг устанавливается в 1.
- После завершения внутреннего цикла, флаг проверяется на равенство 0. Если это так, то циклы завершаются.
- Если флаг не равен 0, то это означает, что в массиве есть элементы, которые необходимо переставить для сортировки.
- Функция sort возвращает отсортированный массив A.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д