排序算法 互动版

冒泡排序算法伪代码

//冒泡排序
BUBBLE_SORT(A)
{
   for i = length[A] to 2
   {
       for j = 1 to i-1
       {
           if A[j] > A[j+1]
           {
                exchange A[j] and A[j+1];
           }
       }
   }
}
用冒泡排序算法对数组arr[10] = {8, 5, 10, 12, 7, 6, 15, 9, 11, 3};从小到大排序。
//冒泡排序 void bubbleSort(int *arr, int n) { int flag = 1;//标记一次遍历没有发生移位,排序完毕 if (arr == NULL || n == 0) { return; } for (int i = n - 1; i >= 1 && flag; --i) { flag = 0; for (int j = 0; j < i; ++j) { if (arr[j] > arr[j + 1]) { int temp = arr[j]; arr[j] = arr[j + 1]; arr[j + 1] = temp; if (flag == 0) { flag = 1;//排序完成 } } } } }