经典排序算法之冒泡算法

冒泡排序是一种典型的交换排序算法,通过交换数据元素的位置进行排序。

基本思想

两个数比较大小,较大的数下沉,较小的数冒起来。

算法步骤

1.比较相邻的元素。如果第一个比第二个大,就交换它们两个;
2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对,这样在最后的元素应该会是最大的数;
3.针对所有的元素重复以上的步骤,除了最后一个;
4.重复步骤1~3,直到排序完成。

算法实现

/*********************************************************************************
 *      Copyright:  (C) 2018 Dinghuanhuan<736787419@qq.com>
 *                  All rights reserved.
 *
 *       Filename:  bubbling.c
 *    Description:  This file 
 *                 
 *        Version:  1.0.0(08/27/2018)
 *         Author:  Dinghuanhuan <736787419@qq.com>
 *      ChangeLog:  1, Release initial version on "08/27/2018 02:20:00 PM"
 *                 
 ********************************************************************************/

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

void  bubbling(int buf[], int size);


int main(int argc, char **argv)
{
    int buf[]={3,10,1,60,80,30,20,10,70,50};

    int i,j;
    int temp,size,flag;
    size = sizeof(buf)/sizeof(int);

    printf("size :[%d]\n", size);
    for(i=0;i<size;i++)
    {
       printf("buf[%d]: %d\n",i,buf[i]);
    }

    bubbling(buf,size);
    for(i=0;i<size;i++)
    {
       printf("change_buf[%d]: %d\n",i,buf[i]);
    }

    return 0;
}


void  bubbling(int buf[],int size)
{
    int i,j;
    int temp;
    printf("begin bubbling\n");
    for(i=0;i<size-1;i++)
        for(j=0;j<size-1-i;j++)
       {
            if(buf[j]>buf[j+1])
            {
               temp     = buf[j];
               buf[j]   = buf[j+1];
               buf[j+1] = temp; 
            }
        }


}

现象

这里写图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值