zoukankan      html  css  js  c++  java
  • [ 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


  • 相关阅读:
    随机算法之舍伍德算法
    KMP算法笔记
    分治法求解最大子段和问题
    递归与分治之间的关系
    微信公众号开发学习笔记(一)
    关于echo$PATH中的PTAH来源
    【Leetcode】807. Max Increase to Keep City Skyline
    【Leetcode】804. Unique Morse Code Words
    【Leetcode】709. To Lower Case
    【Leetcode】Jewels and Stones
  • 原文地址:https://www.cnblogs.com/Trybst/p/4494280.html
Copyright © 2011-2022 走看看