冒泡排序(C语言实现)

今天说说冒泡排序算法。

冒泡排序的思想:就像气泡一样让最小的(或者最大的)浮到最上面,一个个接着浮上来,整个排序完成。

请看图

这样一趟排序已完成,此时最小值就会浮到最上面(即水面上)</p><p>这是整个冒泡排序的思想,如果这玩意理解了,那么代码就不难了,至少能看懂了</p><p>声明,代码都是亲自敲出来的,GCC版本gcc (Ubuntu 4.4.3-4ubuntu5) 4.4.3Copyright (C) 2009 Free Software Foundation, Inc.This is free software; see the source for copying conditions.  There is NOwarranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

 1 #include <stdio.h>
  2 
  3 void Print(int* arr,int len)
  4 {
  5    int i;
  6    for(i=0;i<len;i++)
  7    {
  8       printf("%d ",arr[i]);
  9    }
 10    printf("\n");
 11 }
 12 
 13 void Swap(int* a,int* b)
 14 {
 15    *a=*a+*b;
 16    *b=*a-*b;
 17    *a=*a-*b;
 18 }
main.c
  1 #include "sort.h"
  2 
  3 void Bubble(int* arr,int len);
  4 int main(void)
  5 {
  6    int arr[]={-1,1,-2,2,4};
  7    Print(arr,5);
  8    Bubble(arr,5);
  9    Print(arr,5);
 10    return 0;
 11 }
 12 
 13 void Bubble(int* arr,int len)
 14 {
 15    int i,j;
 16    for(i=0;i<len;i++)
 17    {
 18       for(j=len-1;j>i;j--) //从最深处开始,为什么j>i?这是因为i表示位置,i=0表示正在排序第一个位置,如果这个位置拍好了,下次就是排序i=1位置
 19       {
 20          if(arr[j]>arr[j-1])
 21             Swap(&arr[j],&arr[j-1]); //交换值
 22       }
 23    }
 24 }





完整代码实现地址下载:http://download.youkuaiyun.com/detail/mingyueruya/8188677



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值