zoukankan      html  css  js  c++  java
  • 冒泡排序(C语言实现) 分类: 数据结构 2014-11-23 08:21 126人阅读 评论(0) 收藏

    今天说说冒泡排序算法。

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

    请看图

    这样一趟排序已完成,此时最小值就会浮到最上面(即水面上)</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("
    ");
     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.csdn.net/detail/mingyueruya/8188677



    版权声明:本文为博主原创文章,未经博主允许不得转载。

  • 相关阅读:
    linux基础——虚拟机的创建及安装操作系统
    并发编程之多进程
    操作系统与进程(理论知识点)
    粘包
    socket-网络编程
    网络编程1
    网络编程
    异常
    元类
    反射与内置方法
  • 原文地址:https://www.cnblogs.com/L-Lune/p/4671294.html
Copyright © 2011-2022 走看看