栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

排序之冒泡排序

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

排序之冒泡排序

本人是一名普通大学生用这个平台记录学习过程

冒泡排序(Bubble sort)是一种非常直观的排序算法,核心内容是在一次次的遍历的过程中,一次比较前后两个数据,如果他们的顺序错误就交换两个数据,这样最大或最小的元素就会浮到顶端,冒泡排序也因此而得名。

下面通过动图来看过程(从网上借鉴的),其实学算法就是要多画图理解

void BubbleSort(int *a,int len)
{
    for(int i=0;ia[j+1])
            {
                int temp=a[j];
                a[j]=a[j+1];
                a[j+1]=temp;
            }
        }
    }
}

这个算法还有一种优化算法,立个flag,遍历了一遍发现没有发生交换,就可以直接退出

void BubbleSort(int *a,int len)
{
    for(int i=0;ia[j+1])
            {
                int temp=a[j];
                a[j]=a[j+1];
                a[j+1]=temp;
                flag=0;
            }
        }
        if(flag==1)//遍历一遍之后都没有发生交换。直接退出
            break;
    }
}

算法复杂度分析:时间复杂度O(n^2),最坏情况,数组是倒序的,空间复杂度O(1)

稳定性分析:这个算法非常稳定

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/605885.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号