歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> [排序算法]冒泡排序之C語言實現

[排序算法]冒泡排序之C語言實現

日期:2017/3/1 9:06:57   编辑:Linux編程

一,冒泡排序介紹及原理

基本概念:依次比較相鄰的兩個數,大的數往後放,小的數往前面放。

原理介紹:

二,冒泡排序的C語言實現

根據上圖的原理,我們編寫C語言的冒泡排序實現

# include <stdio.h>
// 排序函數
void sort(int * p,int len)
{
    for(int i=0;i<len;i++)
    {
        // 第二層循環,隨著外層循環次數的遞增是遞減的,因為排序一次,就已經把大的數放到後面了,就不需要再次排它了
        for(int j=0;j<len-i-1;j++)
        {
            if(p[j]>p[j+1])
            {
                int temp = p[j];
                p[j] = p[j+1];
                p[j+1] = temp;
            }
        }
    }
}
// 輸出函數
void console(int * p,int len)
{
    for(int i=0;i<len;i++)
    {
        printf("%d  ",p[i]);
    }
    printf("\n");
}
int main(void)
{
    // 要排序的數組
    int arr[7] = {6,9,8,3,4,1,2};

    // 調用排序函數
    sort(arr,7);

    // 輸出排序結果
    console(arr,7);

    return 0;
}

Copyright © Linux教程網 All Rights Reserved