冒泡排序

 

 

//冒泡排序,从小到大(方向可改) 。
#include <stdio.h> 
void bubble_sort(int a[], int n);   //申明函数"bubble_sort" 
int number[10000000];               //在主函数外面定义数组可以更长 
void bubble_sort(int a[], int n)    //下面是函数bubble_sort的程序 
{
    int i,j,temp;            //定义三个整型变量 
    for (j=0;j<n-1;j++)      //用一个嵌套循环来遍历一遍每一对相邻元素 (所以冒泡函数慢嘛,时间复杂度高)  
    {                           
        for (i=0;i<n-1-j;i++)
        {
            if(a[i]>a[i+1])    //从大到小排就把左边的">"改为"<" !!!
            {
                temp=a[i];      //a[i]与a[i+1](即a[i]后面那个) 交换
                a[i]=a[i+1];    //基本的交换原理"c=a;a=b;b=c" 
                a[i+1]=temp;
            }
        }
    }    
}

int main()      //主函数 
{
    int i,n;
    scanf("%d",&n);      //输入数字个数for(int j=0;j<n;j++)   scanf("%d",&number[j]) ;
    bubble_sort(number,n);   //引用函数bubble_sort 
    for (i=0;i<n-1;i++)    //输出传来的排序好的数组 
        printf("%d ",number[i]);   //这里这么写是因为有些题有格式要求(最后一个数后面不能有空格)                                
    printf("%d\n",number[i]);
    return 0;
}

 

上一篇:C语言实现冒泡排序


下一篇:C语言13