整理C基础知识--排序(Bubble sort)

冒泡排序Bubble sort(经典的简单的排序算法)

它的原理:一组数据,相邻的两个数字 两两进行比较,按照从小到大或者从大到小的顺序进行交换;重复地进行这种比较直到没有再需要交换的,也就是说该组数据排序完成。

需要排序的数组: 6 2 4 3 8 1 7 9 5
按照Bubble sort的原理分析:
1.从起始数据 6>>>结束数据 5 当作一个大循环
2.第一次大循环开始:相邻两两数据比较是这个大循环的一部分。比对到符合条件的就交换,直到比对最后一对数据,此次大循环结束。
3.进行重复的操作 ,从起始数据开始做第二次大循环,重复进行相邻数据比对。

基本写法:

#include <stdio.h>

int main(void)
{
    int i,j,t;
    int Arr[9] = {6,2,4,3,8,1,7,9,5};

    for (i=0;i<8;++i)
    {
        for (j=0;j<8-i;++j)
        {
            if (Arr[j]>Arr[j+1])
            {
                t = Arr[j];
                Arr[j] = Arr[j+1];
                Arr[j+1] = t;
            }
        }
    }
    for (i= 0;i<9;++i)

    printf("%d",Arr[i]);
    return 0;
}

使用函数 指针写法:

#include <stdio.h>

void Bubble_sort(int *pArr,int Len)
{
    int i,j,t;
    for (i=0;i<Len-1;++i)
    {
        for (j=0;j<Len-1-i;++j)
        {
            if (pArr[j]>pArr[j+1])
            {
                t = pArr[j];
                pArr[j] = pArr[j+1];
                pArr[j+1] = t;
            }
        }
    }
}
int main(void)
{
    int k;
    int Arr[9] = {6,2,4,3,8,1,7,9,5};

    Bubble_sort(Arr,9);
    for (k= 0;k<9;++k)
        printf("%d",Arr[k]);
    return 0;
}

转载于:https://blog.51cto.com/12431776/2055821

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值