zoukankan      html  css  js  c++  java
  • 冒泡排序

    算法原理:( 从后往前)
    1、比较相邻的元素,如果第一个比第二个大,就交换他们俩个位置
    2、对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
    3、针对所有的元素重复以上的步骤,除了最后一个。
    4、持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较
     
     
    总结:
    两层循环,外层控制次数, 内层排序
    第一次循环找出最大(升序)或最小(降序)第一个,排列到最尾,
    第二次循环找出剩下中最大(升序)或最小(降序)的, 排在倒数第二
    一次类推
    注:每次循环比较 就将递减
     
    示例图: 
    复杂度:
     
    核心代码:
    int[] arr = { 23, 44, 66, 76, 98, 11, 3, 9, 7 };
    int temp = 0;
    for (int i = 0; i < arr.Length -1; i++)
    {
        for (int j = 0; j < arr.Length -1 -i; j++)
        {
            //// 升序
            //if (arr[j] > arr[j + 1])
            //{
            //    temp = arr[j + 1];
            //    arr[j + 1] = arr[j];
            //    arr[j] = temp;
            //}
    
            // 降序
            if (arr[j] < arr[j + 1])
            {
                temp = arr[j + 1];
                arr[j + 1] = arr[j];
                arr[j] = temp;
            }
        }
    }
  • 相关阅读:
    Mysql多表关系
    Linux权限
    Linux安装python环境脚本
    ZJNU 2136
    ZJNU 2135
    ZJNU 2133
    ZJNU 1699
    ZJNU 1542
    ZJNU 1538
    ZJNU 1535
  • 原文地址:https://www.cnblogs.com/duanbiflying/p/6675242.html
Copyright © 2011-2022 走看看