冒泡排序(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;
        }
}
posted @ 2019-06-17 16:05  SunnyLux  阅读(1124)  评论(0编辑  收藏  举报