您的位置:首页 > 编程语言 > C语言/C++

C语言 利用函数调用进行排序——冒泡法

2014-08-26 20:20 302 查看
//Title冒泡排序,利用函数调用

#include<stdio.h>

#define M 10//宏定义修改M的值

void Bubble_sort(int a[])

{

    int i,j,t;

    for(j=0;j<M;j++)

      for(i=0;i<M-j;i++)

        if(a[i]<a[i+1])

        {

            t=a[i];a[i]=a[i+1];a[i+1]=t;

        }

}//数组传递为地址传递,此函数结束后排序结束,无需返回值

main()

{

    int i,a[M];

    printf("Please input several numbers at will)\n");

    for(i=0;i<M;i++)

      scanf("%d",&a[i]);

    Bubble_sort(a);//函数调用,定义在调用之前就不需要声明

    printf("The sorted numbers are following:\n");


    for(i=0;i<M;i++)

      printf("%d ",a[i]);
}



//给定10个乱序的数,先排序后合理插入数

#include<stdio.h>

#define M 11

void Bubble_sort(int a[])//冒泡排序

{

   int i,j,temp;

   for(i=0;i<9;i++)

     for(j=0;j<9-i;j++)

     if(a[j]>a[j+1])

     {

        temp=a[j];

        a[j]=a[j+1];

        a[j+1]=temp;

     }

}

void insert(int a[],int x)//插入函数

{

    int i,j,temp;

    for(i=0;i<10;i++)

      if(x<a[i])

      {

          for(j=9;j>=i;j--)

            a[j+1]=a[j];

          break;

      }

    a[i]=x;

}

int main()

{

    int x;

    int a[M]={23,32,4,54,5,63,2,5,24,53};

    printf("排序插入前:\n");

     for(int i=0;i<M-1;i++)

      printf("%d ",a[i]);

    printf("\n");

    Bubble_sort(a);

    printf("Please input x:\n");

    scanf("%d",&x);

    insert(a,x);

    printf("排序插入后:\n");

    for(int i=0;i<M;i++)

      printf("%d ",a[i]);

    return 0;

}

结果如下:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息