冒泡排序

 

1.冒泡排序的算法原理

a) 从第一队两个相邻的元素开始,比较相邻的元素,如果第一个比第二个大,就将第一个与第二个交换;然后比较第二个和第三,以此类推.....

b) 对数组内的每一对相邻元素进行对比,直到结尾的最后一对,到此比较完以后最后一个元素应该是数组内最大的元素

c) 针对以上的所有元素进行如上2步,除了最后一个元素

d) 然后持续对越来越少的元素重复上面的步骤,直到整个排序的完成。

 

2.实现代码

#include<stdio.h>
 
int  bubble_sort(int a[],int n)
{
        int i,j,temp;
        for(i=0;i<n;i++){//每一轮都把那一轮中最大的元素放在每一轮的最后一个位置
                for(j=0;j<n-i;j++){ //对每对相邻的元素进行比较、排序
                        if(a[j]>a[j+1]){
                                temp=a[j];
                                a[j]=a[j+1];
                                a[j+1]=temp;
                        }
                }
        }
        return 0;
}
 
 
int main()
{
        int i;
        int a[6]={2,1,4,3,6,5};
        bubble_sort(a,6);
        for(i=0;i<6;i++){
                printf("%d ",a[i]);
 }

 

 

 

3.平均时间复杂度:O(N^2)