Пузырьковая сортировка - C (СИ) (74476)

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

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

Добрый день, Подскажите где ошибся, не могу понять:
#include <stdio.h>
 
int main ()
{
    int a[]={4,7,72,13};
    int i;
    int tmp;
    for(i = 0 ; i < 4 ; i++) 
       {  
           if (a[i] < a[i+1]) 
                {           
                   int tmp = a[i]; a[i] = a[i+1] ; a[i+1] = tmp; 
                }
           printf("%d\n", a[i]);    
       }
    return 0; 
}

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

textual
Листинг программы
 for(j = 0 ; j <sizeof(a)/sizeof(a[0]-1 ; j++) 
 {
     for(i = sizeof(a)/sizeof(a[0]-1  ; i >j ; i--)
        if (a[i] < a[i-1]) 
                 {           
                  int tmp = a[i];
                  a[i] = a[i-1] ;
                  a[i-1] = tmp; 
                  }

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

  1. Первый цикл for начинается с переменной j равной 0 и условием, чтобы оно выполнялось пока j меньше количества элементов в массиве a деленного на размер одного элемента в массиве (sizeof(a)/sizeof(a[0])).
  2. Второй цикл for начинается с переменной i равной размеру массива a деленного на размер одного элемента в массиве (sizeof(a)/sizeof(a[0])) и условием, чтобы он выполнялся пока i больше j.
  3. Внутри второго цикла проверяется условие, если текущий элемент массива a больше следующего элемента (a[i] < a[i-1]).
  4. Если условие выполняется, то создается временная переменная tmp и присваивается ей значение текущего элемента массива a.
  5. Значение текущего элемента массива a заменяется на значение следующего элемента массива a.
  6. Значение следующего элемента массива a заменяется на значение временной переменной tmp.
  7. В результате этих действий, элементы массива a, которые были перепутаны местами, меняются местами в правильном порядке.
  8. После выполнения второго цикла, значение переменной j увеличивается на 1.
  9. Циклы for повторяются до тех пор, пока значение переменной j меньше количества элементов в массиве a.
  10. В результате выполнения циклов for, массив a будет отсортирован в порядке возрастания.

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


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

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

11   голосов , оценка 4.182 из 5
Похожие ответы