數據結構與算法-學習筆記(7)-冒泡排序

菜鳥一枚,
剛剛學習數據結構與算法,
爲了加深理解,
所以與同學們分享學習過程。

今天學習的是,
冒泡排序!!!

冒泡排序:兩兩相鄰進行比較,若返序,則交換,直到沒有反序

那麼讓代碼說話:

#include <stdio.h>
#include <stdlib.h>

//ctrl+shift+c  註釋多行
//ctrl+shift+x  取消註釋

void bubosort(int k[],int n)   //冒泡排序,從小到大
{
    int i,j,temp,flag;
    flag=1;
//    for(i=0;i<n-1;i++)   //假冒泡
//    {
//        for(j=i+1;j<n;j++)   //但這個排序方法不符合兩兩相鄰比較
//        {
//            if(k[i]>k[j])  //若前一個大於後一個,交換順序
//            {
//                temp=k[j];
//                k[j]=k[i];
//                k[i]=temp;
//            }
//        }
        for(i=0;i<n-1&&flag;i++)  //沒有執行到移位操作,此循環提早退出
        {
            for(j=n-1;j>i;j--)   //
            {
                flag=0;   //沒有執行到移位操作,
                if(k[j-1]>k[j])  //相鄰比較,交換順序
                {
                    temp=k[j-1];
                    k[j-1]=k[j];
                    k[j]=temp;
                    flag=1;
                }
            }
        }
}


int main()
{
    int i,a[10]={4,3,6,1,0,8,7,2,9,5};
    bubosort(a,10);
    printf("排序後結果爲:");
    for(i=0;i<10;i++)
        {
            printf("%d",a[i]);
        }
    return 0;
}

在這裏插入圖片描述
若有錯誤的地方,請同學們指出。
謝謝同學們的閱讀!!!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章