冒泡排序(Bubble Sort)


冒泡排序

思路分析:冒泡排序属于交换类排序,对n个元素的序列,需要将n-1个元素与相邻元素进行比较,并根据实际需求,交换相邻两个元素,使较大元素和较小元素分别向两个方向聚集。

时间复杂度:最坏情况(初始序列逆序)时间复杂度为O(n2),最好情况(初始序列顺序)时间复杂度为O(n),平均情况时间复杂度为O(n2)。

源代码:

void BubbleSort(int R[],int n)
{
    int i,j,temp,flag;
    for(i=n-1;i>=1;i--)    //共需要进行n-1次冒泡过程
    {
        flag=0;    //标识此次冒泡过程是否发生元素交换
        for(j=1;j<=i;++j)    //较小元素前移
        {
            if(R[j-1]>R[j])
            {
                temp=R[j];
                R[j]=R[j-1];
                R[j-1]=temp;
            }
        }
        if(flag==0)    //排序完成
        {
            return;
        }
}


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM