排序算法2-冒泡排序

示例代码

   int arr[] = {5,8,6,4,9,3,1,7,2};

   int length = sizeof(arr)/sizeof(int);

  

    for(int i = 0; i < length - 1; i++)

    {

        for(int j = 0; j < length - 1- i; j++)

        {

            if(arr[j] > arr[j+1])

            {

                printf("%d和%d马上就换 ",arr[j],arr[j+1]);

                printArray(arr, length);

                arr[j] = arr[j] + arr[j+1];

                arr[j+1] = arr[j] - arr[j+1];

                arr[j]  = arr[j] - arr[j+1];

            }

        }

    }

排序结果:1    2    3    4    5    6    7    8    9

算法分析:

      多擂台模式:把大的往后丢

      第0轮,把最大的放在了最后

      第1轮,把第二大的放在倒数第二个位置

      xxx

      xxx

具体过程打印

第0轮:

 8和6马上就换 5    8    6    4    9    3    1    7    2

 8和4马上就换 5    6    8    4    9    3    1    7    2

 9和3马上就换 5    6    4    8    9    3    1    7    2

 9和1马上就换 5    6    4    8    3    9    1    7    2

 9和7马上就换 5    6    4    8    3    1    9    7    2

 9和2马上就换 5    6    4    8    3    1    7    9    2

 第1轮:

 6和4马上就换 5    6    4    8    3    1    7    2    9

 8和3马上就换 5    4    6    8    3    1    7    2    9

 8和1马上就换 5    4    6    3    8    1    7    2    9

 8和7马上就换 5    4    6    3    1    8    7    2    9

 8和2马上就换 5    4    6    3    1    7    8    2    9

 第2轮:

 5和4马上就换 5    4    6    3    1    7    2    8    9

 6和3马上就换 4    5    6    3    1    7    2    8    9

 6和1马上就换 4    5    3    6    1    7    2    8    9

 7和2马上就换 4    5    3    1    6    7    2    8    9

 第3轮:

 5和3马上就换 4    5    3    1    6    2    7    8    9

 5和1马上就换 4    3    5    1    6    2    7    8    9

 6和2马上就换 4    3    1    5    6    2    7    8    9

 第4轮:

 4和3马上就换 4    3    1    5    2    6    7    8    9

 4和1马上就换 3    4    1    5    2    6    7    8    9

 5和2马上就换 3    1    4    5    2    6    7    8    9

 第5轮:

 3和1马上就换 3    1    4    2    5    6    7    8    9

 4和2马上就换 1    3    4    2    5    6    7    8    9

 第6轮:

 3和2马上就换 1    3    2    4    5    6    7    8    9

 第7轮:

 结果:

 1    2    3    4    5    6    7    8    9

 

posted @ 2016-12-16 12:20  行者烧炉子  阅读(130)  评论(0编辑  收藏  举报