Метод обменов или метод пузырька является прямым методом сортировки массива.
Алгоритм метода обмена основан на сравнении пары соседних элементов. Если расположение элементов не удовлетворяет условиям сортировки, то их меняют местами. Сравнения и перестановки продолжаются до тех пор, пока не будут упорядочены все элементы. Определить, что элементы упорядочены, можно, считая количество выполненных перестановок: если количество перестановок равно нулю, то массив отсортирован.
Рис. 1.  Алгоритм метода обменов
Рис. 2.  
k=1;                    /*количество перестановок, в начале не 0*/
i=1;                    /*номер очередного просмотра, в начале 1*/
while(k!=0)             /*пока есть перестановки*/
   {
    k=0;                /*обнуляем счетчик перестановок*/
    for(j=0; j<n-i; j++)/*цикл сравнения соседних элементов*/
       if(a[j]>a[j+1])  /*если предыдущий элемент больше последующего, то*/
          {
           b=a[j];      /*осуществляем перестановку*/
           a[j]=a[j+1];
           a[j+1]=b;
           k=k+1;       /*счетчик перестановок увеличиваем на 1*/
           }
     i=i+1;             /*увеличиваем номер просмотра на 1*/
     }

Оценим вычислительную сложность данного метода. Очевидно, что она сильно зависит от исходного расположения элементов массива. Так в лучшем случае, когда массив уже отсортирован, потребуется выполнить n-1 сравнение для проверки правильности расположения элементов массива, т.е. вычислительная сложность равна O(n).
В худшем случае, если массив отсортирован в обратном порядке, будет выполнено n-1, n-2, ... 1 операций сравнения, т.е. всего (n2-n)/2 операций сравнения, следовательно, вычислительная сложность равна O(n2).
Выполнить усредненную оценку данного метода достаточно сложно, так как зависимость времени выполнения от количества неправильно стоящих элементов не является линейной.