冒泡排序(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