• [ Bubble Sort ]& block


    [ Bubble Sort ]

      冒泡排序!“预处理、block、预编译”!<环境:Terminal的gcc编译器>

    简述冒泡排序就是把小的元素往前调或者把大的元素往后调。比较是相邻的两个元素比较,交换也发生在这两个元素之间。冒泡排序的最坏时间复杂度为 O(n*n)

     
    冒泡排序算法的原理如下:(从后往前
    1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。
    2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。
    3. 针对所有的元素重复以上的步骤,除了最后一个。
    4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较

    /*************************************************************************

      > File Name: bubble.c

      > Author: SpongeBob_Han (Bing Ma)

      > Mail: 1605319671@qq.com

      > Created Time: Sat Apr 18 16:27:34 2015

    ************************************************************************/

    blcok的使用 & 调用系统清屏“clear

    #include<stdio.h>
    
    //#define swap(a, b) { 
    
    int temp; temp = a; a = b; b = temp;
    
    }
    
    //#define MAX(x,y) (x)>(y)?(x):(y)

    #pragma - 利用block打印出结果!
    
    void (^print)(int *, int) = ^(int a[], int n){
    
      int index;
     
    
      for(index = 0; index < n; index++)
    
      printf("%d 	", a[index]);
    
    };
     
    #pragma - 引入终端命令“clear”等!
    
    int system(const char *string);
    
    
    void swap(int *a, int *b)
    
    {
    
      int temp;
    
      temp = *a;
      *a = *b;
      *b = temp;
    
    }

    Buble Sort 核心算法:

    #pragma - Bubble Sort !
    
    void bubble(int a[], int n)
    
    {
      int i, j;
     
    
      for (i = 0; i < n-1; ++i)
    
        for (j = n-1; j > i; --j)
    
          if (a[j-1] > a[j])
    
            swap(&a[j-1], &a[j]);
    
      // print(a, n);
    }

     main.c

    int main()
    
    {
      // 调用系统clear
      system("clear");
    
      printf("Bubble sort! 
    
    ");
    
      int a[] = {7, 3, 66, 3, -5, 22, 77, 2};
    
      // 调用函数bubble   bubble(a,
    8);   print(a, 8);   printf(" ");   return 0; }

    ================

    总结:

    1、冒泡排序效率非常低

    2、如果数组中包含n个元素,那么比较次数的复杂度:n * n

    3、使用“归并”排序,高效率,复杂度:n log n

    ================

    PS:

    [ 每日一句 ]

    “不要把期望放到别人那,你要知道,你未来要去哪儿?”

     

    [ 每天一首英文歌 ] 

    " When You're Gone " - Avril Lavigne

    ================

     

    |-> GitHub: SpongeBob-GitHub

    |--> Copyright (c) 2015 Bing Ma.

     



    " There's always more to learn, and there are always better ways to do what you've done before. " -- Trybst


  • 相关阅读:
    oracle:数据库对象:创建用户和赋予权限,数据表,序列,事务,约束
    oracle:多表关联 join on,单行子查询,多行子查询,TOP-N,行转列
    oracle:数值型函数,日期函数,转换函数,decode/case when条件判断,组函数,分组group by,排序order by,两表查询连接
    informix建临时表索引
    jbpm4.3表结构和表字段说明
    JBPM4 常用表结构及其说明
    Docker技术学习
    千万PV级别WEB站点架构设计
    四层和七层负载均衡的区别
    STORM在线业务实践-集群空闲CPU飙高问题排查
  • 原文地址:https://www.cnblogs.com/Trybst/p/4494280.html
Copyright © 2020-2023  润新知