Переделать программу методом сортировки пузырька - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Помогите пожалуйста переделать программу методом сортировки пузырька. Буду очень благодарен)))
Листинг программы
  1. #include <stdio.h>
  2. int main(void)
  3. {
  4. int i, j=0, imax, a[10], b[10], *min, *max, *p;
  5. for(;;)
  6. {
  7. printf("Vvedite imax ");
  8. scanf("%d", &imax);
  9. if (imax<1||imax>10)
  10. printf("Error");
  11. else break;
  12. };
  13. for (i=0; i<=imax; i++) {
  14. printf("Vvedite a[%d] ", i);
  15. scanf("%d", &a[i]);
  16. };
  17. max=&a[0];
  18. for(i=0; i<=imax; i++) {
  19. if (&a[i]>max)
  20. max=&a[i];
  21. };
  22. min=&a[0];
  23. for(i=0; i<=imax; i++) {
  24. if (&a[i]<min)
  25. min=&a[i];
  26. };
  27. for (p=max; p>=min; p--) {
  28. for(i=0; i<=imax; i++) {
  29. if(&a[i]==p) {
  30. b[j]=i;
  31. j++;};
  32. };
  33. };
  34. for (j=0; j<=imax; j++)
  35. printf("%d", b[j]);
  36. getchar();
  37. getchar();
  38. return 0;
  39. }

Решение задачи: «Переделать программу методом сортировки пузырька»

textual
Листинг программы
  1. void sort(float *A,int count)
  2. {
  3. int flag=1;
  4.     for(;flag==1;)
  5.     {
  6.         flag=0;
  7.         for(int i=0;i<count-1;i++)
  8.         {
  9.                 if(A[i]>A[i+1])
  10.                 {
  11.                     swap(&A[i],&A[i+1]);
  12.                     flag=1;
  13.                 }
  14.  
  15.         }
  16.  
  17.     }
  18. }

Объяснение кода листинга программы

  1. В функции sort(float *A,int count) на вход подается массив A и его размер count.
  2. Переменная flag инициализируется значением 1.
  3. Начинается цикл while(flag==1), который будет выполняться до тех пор, пока флаг не станет равным 0.
  4. Внутри цикла происходит еще один цикл for, который проходит по всем элементам массива, начиная с 0 и заканчивая count-1.
  5. Если текущий элемент массива A[i] больше следующего элемента A[i+1], то они меняются местами с помощью функции swap(&A[i],&A[i+1]) и флаг устанавливается в 1.
  6. После завершения внутреннего цикла, флаг проверяется на равенство 0. Если это так, то циклы завершаются.
  7. Если флаг не равен 0, то это означает, что в массиве есть элементы, которые необходимо переставить для сортировки.
  8. Функция sort возвращает отсортированный массив A.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы