[ 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;

  ; index < n; index++)

  printf("%d \t", 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;

  ; i < n-; ++i)

    ; j > i; --j)

      ] > a[j])

        swap(&a[j-], &a[j]);

  // print(a, n);
}

main.c

int main()

{
  // 调用系统clear
  system("clear");

  printf("Bubble sort! \n\n");

  , , , , -, , , };
  // 调用函数bubble
  bubble(a, );

  print(a, );
  printf("\n\n");

  ;

}

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

总结:

1、冒泡排序效率非常低

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

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

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

PS:

[ 每日一句 ]

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

[ 每天一首英文歌 ]

" When You're Gone " - Avril Lavigne

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

|-> GitHub: SpongeBob-GitHub

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

[ Bubble Sort ]& block的更多相关文章

  1. [terry笔记]Oracle会话追踪(二):TKPROF

    接上一笔记[terry笔记]Oracle会话追踪(一):SQL_TRACE&EVENT 10046 http://www.cnblogs.com/kkterry/p/3279282.html ...

  2. 洛谷 P1120 小木棍 [数据加强版]解题报告

    P1120 小木棍 [数据加强版] 题目描述 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过50. 现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它 ...

  3. 洛谷——P1120 小木棍 [数据加强版]

    P1120 小木棍 [数据加强版] 题目描述 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过5050. 现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍 ...

  4. 洛谷 P1120 小木棍 [数据加强版]

    P1120 小木棍 [数据加强版] 题目描述 乔治有一些同样长的小木棍,他把这些木棍随意砍成几段,直到每段的长都不超过50. 现在,他想把小木棍拼接成原来的样子,但是却忘记了自己开始时有多少根木棍和它 ...

  5. Java中的经典算法之冒泡排序(Bubble Sort)

    Java中的经典算法之冒泡排序(Bubble Sort) 神话丿小王子的博客主页 原理:比较两个相邻的元素,将值大的元素交换至右端. 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面.即在第一 ...

  6. Bubble Sort (5775)

    Bubble Sort Problem Description   P is a permutation of the integers from 1 to N(index starting from ...

  7. Bubble Sort [ASM-MIPS]

    # Program: Bubble sort # Language: MIPS Assembly (32-bit) # Arguments: 5 unordered numbers stored in ...

  8. HDU 5775 Bubble Sort(冒泡排序)

    p.MsoNormal { margin: 0pt; margin-bottom: .0001pt; text-align: justify; font-family: Calibri; font-s ...

  9. [saiku] 源码整合[maven整合]

    saiku源码的整合分为[普通web项目整合]和[maven整合]两种 本节主要是讲解如何整合为maven项目 转载自:http://blog.csdn.net/gsying1474/article/ ...

随机推荐

  1. js防堵塞载入

    js防堵塞载入 <script type="text/javascript"> function scriptDomElement (u) { var s = docu ...

  2. QtQuick桌面应用程序开发指南 4)动态管理Note对象_B 5)加强外观 6)许多其他的改进

    4.2.2 Stateless(不管状态)JavaScript库 为了让开发轻松点, 使用一个JavaScript接口来和数据库交互是个好主意, 它在QML中提供了方便的方法; 在QtCreator中 ...

  3. [Linux]于Mac在配置Linuxserver安装Nginx+PHP

    Linux 安装Debian系统 我安装的是Debian7.5的系统,Debian的软件包管理和升级十分方便,并且系统也非常稳定. 安装盘能够去华中科技大学镜像.网易开源镜像站或者中国科技大学镜像下载 ...

  4. Visual Studio 2015使用EF6的CodeFirstFromDB模式操作Sqlite数据库时Provider问题

    传送门 什么是CodeFristFromDB 问题:查询数据是遇到 “/”应用程序中的服务器错误. No Entity Framework provider found for the ADO.NET ...

  5. Linux管道通信

    1.Linux内部自己实现了管道的同步,但多个读或者多个写之间的互斥,还需要自己实现.

  6. 设置SQLServer数据库中某些表为只读的多种方法

    原文:设置SQLServer数据库中某些表为只读的多种方法 翻译自:http://www.mssqltips.com/sqlservertip/2711/different-ways-to-make- ...

  7. 蓝牙4.0BLE cc2540 cc2541 ios OAD课程(空中固件升级)[原版的,多图]

           蓝牙4.0BLE cc2540 cc2541 ios OAD课程(件) 为阿莫单片机论坛  www.AmoMcu.com 原创.仅仅公布于csdn博客, 如需转载,请注明出处,谢谢!   ...

  8. Android.mk中的经常使用语法

    Android.mk编译文件是用来向Android NDK描写叙述你的C,C++源码文件的, 今天查了一些经常使用的的语法. 一 概述: 一个Android.mk文件用来向编译系统描写叙述你的源码. ...

  9. mahout源码KMeansDriver分析之五CIMapper初探

    接着上篇,继续分析代码.下面就到了MR的循环了,这里MR应该算是比较好理解的,重点是退出循环的条件设置,即如何判断前后两次中心点误差小于给定阈值. 首先,while循环: while (iterati ...

  10. Android Volley 之自己定义Request

    转载标明出处:http://blog.csdn.net/lmj623565791/article/details/24589837 今天群里一哥们须要自己定义Volley的Request的样例,于是产 ...