• 排序算法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

  • 相关阅读:
    XML操作
    C# 相等(==,Equals)
    VS插件 选项卡竖排列
    springcloud版本号
    @EnableDiscoveryClient和@EnableEurekaClient的区别
    在mvn构建时直接将项目jar包做成服务第三方工具
    java引用的强制转型
    java基础类型的byte为长度
    springboot访问服务器本地静态文件的方法
    nginx反向代理和负载均衡的基本配置
  • 原文地址:https://www.cnblogs.com/dzq1991/p/6186380.html
Copyright © 2020-2023  润新知