冒泡排序

Posted 一只大老鼠

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了冒泡排序相关的知识,希望对你有一定的参考价值。

算法原理:( 从后往前)
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;
        }
    }
}

 

以上是关于冒泡排序的主要内容,如果未能解决你的问题,请参考以下文章

java冒泡排序法代码

python代码实现鸡尾酒排序(双向冒泡排序)

冒泡排序python代码

视频+图文+动画详解冒泡排序

交换排序(冒泡排序快速排序的算法思想及代码实现)

C语言冒泡排序。