码迷,mamicode.com
首页 > 编程语言 > 详细

冒泡排序算法

时间:2014-10-16 15:34:22      阅读:162      评论:0      收藏:0      [点我收藏+]

标签:style   blog   color   io   for   sp   div   log   ef   

冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。

然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。

在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数 第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。

如此下去,重复以上过程,直至最终完成排序。

c语言实现如下:

 1 #include<stdio.h>  
 2 #include<stdlib.h>  
 3 #include<string.h>  
 4 void bubble_sort(int value[], int length)  
 5 {  
 6  int i = 0;  
 7  int j = 0;  
 8  int temp;  
 9  for(i = 1; i < length ; i++)  
10  {  
11   for(j = 0; j< length - i; j++)  
12   {  
13    if (value[j] > value[j+1])  
14    {  
15     temp = value[j];  
16     value[j] = value[j + 1];  
17     value[j+1] = temp;  
18    }  
19   
20   }  
21    
22  }  
23   
24   
25 }  
26 int main()  
27 {   
28  int value[8] = {1,10920,293105};  
29  int i = 0;  
30  int length = 8;  
31   
32  printf("Before:\n");  
33  for(i =0; i < length; i++)  
34  {  
35   if(i == length-1)  
36    printf("%d\n", value[i]);  
37   else  
38    printf("%d\t", value[i]);  
39  }  
40    
41  bubble_sort(value, length);  
42  printf("After:\n");  
43  for(i =0; i < length; i++)  
44  {  
45   if(i == length-1)  
46    printf("%d\n", value[i]);  
47   else  
48    printf("%d\t", value[i]);  
49  }  
50    
51  return 0;  
52 } 

冒泡排序算法

标签:style   blog   color   io   for   sp   div   log   ef   

原文地址:http://www.cnblogs.com/xiongyunqi/p/4028547.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!