zoukankan      html  css  js  c++  java
  • 算法学习之冒泡排序的C实现

    冒泡排序是属于比较类的排序方式,简单易懂,但是效率不是很高,不及快排。

    #include "stdio.h"
    #include "time.h"
    
    void bubble(int *a,int len);//排序  
    void swap(int *p1,int *p2);//交换数值  
    
    int main()
    {
        clock_t start,finish;
        double totaltime;
        start=clock();
        
        
        int a[] = {5,45,12,36,2,7,91,8,44,77,35,65,78,12};
        int length = sizeof(a)/sizeof(int);//求数组长度  
        
        printf("原序列为:");
        for(int i=0;i<length;i++)
        {
            printf("%3d",a[i]);
        }
    
        bubble(a,length);
        
        printf("
    冒泡排序后:");
        for(int i=0;i<length;i++)
        {
            printf("%3d",a[i]);
        }
        printf("
    ");
        
        
       finish=clock();
       totaltime=(double)(finish-start)/CLOCKS_PER_SEC;  
       printf("
    程序运行的时间为: %.5f 秒
    ",totaltime);
       
    }
    
    
    void swap(int *p1,int *p2)//注意交换数值函数,调用时传入参数是地址,实际就是交换两数值的地址   
    {
        int temp;
        temp = *p1;
        *p1 = *p2;
        *p2 = temp;
    }
    
    
    void bubble(int *a,int len)//数组名表示数组第一个元素的地址,所以用int *a 
    {
        int i,j;
    
        for(i=0;i<len;i++)
        {
            for(j=0;j<len-i-1;j++)//注意是 len-i-1, 想一下就明白了  
            {
                if(a[j]>a[j+1])
                    swap(&a[j],&a[j+1]);//交换两数值的地址     
            }
        }
    }

    实现结果:

  • 相关阅读:
    闭包 与 装饰器
    Linux常用命令 (二)
    day1 linux常用命令(一)
    📎 .xib
    📎 Emoji 前端转换
    📎 钉钉微应用( 新启项目Weex H5 )
    📎 ROR:常用GEM
    📎 AndroidNative【ING...】
    🆕 ror方法
    安装centos7
  • 原文地址:https://www.cnblogs.com/qsyll0916/p/7499883.html
Copyright © 2011-2022 走看看