[ Bubble Sort ]

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

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

冒泡排序算法的原理如下:(从后往前)

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

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

> File Name: bubble.c

> Author: SpongeBob_Han (Bing Ma)

> Mail: [email protected]

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

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

#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 \t", a[index]);

};

#pragma - 引入终端命令“clear”等!

int system(const char *string);

void swap(int *a, int *b)

{

  int temp;

  temp = *a;

  *a = *b;

  *b = temp;

}

#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);

}

int main()

{

  system("clear");

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

  int a[] = {7, 3, 66, 3, -5, 22, 77, 2};

  bubble(a, 8);

  print(a, 8);

  printf("\n\n");

  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.

时间: 2024-10-12 07:41:01

[ Bubble Sort ]的相关文章

luogu P1120 小木棍 [数据加强版]

二次联通门 : luogu P1120 小木棍 [数据加强版] /* luogu P1120 小木棍 [数据加强版] 暴搜 + 剪枝 枚举可能的长度 挨个检查答案 二分显然正确性不能保障 搜索时从最大的开始找 放上当前木棍后的长度比枚举的长度要大, 则退出 若当前的长度与当前扫到的木棍长度相同, 或是还需要的长度与枚举的长度相同,则退出 若当前的木棍不符合要求, 则后面与它长度相同的木棍都不行 */ #include <algorithm> #include <iostream>

经典排序算法 - 冒泡排序Bubble sort

 原文出自于 http://www.cnblogs.com/kkun/archive/2011/11/23/bubble_sort.html 经典排序算法 - 冒泡排序Bubble sort 原理是临近的数字两两进行比较,按照从小到大或者从大到小的顺序进行交换, 这样一趟过去后,最大或最小的数字被交换到了最后一位, 然后再从头开始进行两两比较交换,直到倒数第二位时结束,其余类似看例子 例子为从小到大排序, 原始待排序数组| 6 | 2 | 4 | 1 | 5 | 9 | 第一趟排序(外循环) 第

HDU 5775:Bubble Sort(树状数组)

http://acm.hdu.edu.cn/showproblem.php?pid=5775 Bubble Sort Problem Description P is a permutation of the integers from 1 to N(index starting from 1).Here is the code of Bubble Sort in C++. for(int i=1;i<=N;++i) for(int j=N,t;j>i;—j) if(P[j-1] > P

hdu 5775 Bubble Sort(2016 Multi-University Training Contest 4——树状数组)

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=5775 Bubble Sort Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/Others) Total Submission(s): 636    Accepted Submission(s): 378 Problem Description P is a permutation of the

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

Java中的经典算法之冒泡排序(Bubble Sort) 原理:比较两个相邻的元素,将值大的元素交换至右端. 思路:依次比较相邻的两个数,将小数放在前面,大数放在后面.即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后.然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后.重复第一趟步骤,直至全部排序完成. 举例说明:要排序数组:int[] arr={6,3,8,2,9,1}; 第一趟排序: 第一次排序:6和3比较,6大于3,交换位置:  

Bubble Sort

referrence: GeeksforGeeks Bubble sort is the simplest sorting algorithm that works by repeatedly swapping the adjacent elements if they are in wrong order. Example:First Pass:( 5 1 4 2 8 ) –> ( 1 5 4 2 8 ), Here, algorithm compares the first two elem

冒泡排序(Bubble Sort)

常见的排序算法有Bubble Sort.Merge Sort.Quick Sort 等,所有排序算的基本法思想都是把一个无限大的数据规模通过算法一步步缩小,指导最后完成排序. 这里分享一下Buuble Sort算法,php版本的.冒泡排序不适合在待排序的数据集特别大的情况下,这里只是一个简易的demo,待排序的数据在10以内. 冒泡排序算法有2种极端的情况所导致的算法复杂度是不一样的: 所有的数据集都是有序的,则此时通过算法优化可以是算法的复杂度从 O(n^2) 将至 O(n) 所有的数据集都是

CodeForcesGym 100517B Bubble Sort

Bubble Sort Time Limit: 2000ms Memory Limit: 262144KB This problem will be judged on CodeForcesGym. Original ID: 100517B64-bit integer IO format: %I64d      Java class name: (Any) 解题:我们发现假设当前位选择1,那么发现比1大的并且没有使用的有b个,那么当前为选1,后面就还有$2^{b-1}$种方式,所以贪心的选,只要

codeforces 340D Bubble Sort Graph(dp,LIS)

转载请注明出处: http://www.cnblogs.com/fraud/          ——by fraud  Bubble Sort Graph Iahub recently has learned Bubble Sort, an algorithm that is used to sort a permutation with n elements a1, a2, ..., an in ascending order. He is bored of this so simple al