您的位置:首页 > 其它

冒泡排序

2014-09-08 00:07 85 查看
冒泡排序:

1.相邻元素两两比较,前者大于后者,彼此交换

2.从第一对到最后一对,最大的元素沉降到最后

3.针对未排序部分,重复以上步骤,沉降次大值

4.每次扫描越来越少的元素,直至不再发生交换

平均时间复杂度 O(N2)

稳定排序、对数据的有序性敏感

#include<stdio.h>

#define SIZE 10

#define swap(x,y,z) ((z)=(x),(x)=(y),(y)=(z))

void print(int arr[],int size){
int a;
for(a=0;a<size;a++){
printf("%d ",arr[a]);
}
printf("\n");

}

void bubble_sort(int arr[],int size){
int x,y;
do{
for(x=0;x<size-1;x++){
if(arr[x]>arr[x+1])
{
swap(arr[x],arr[x+1],y);
}
}
}while(--size);

}

int main(){
int arr[SIZE]={4,40,90,10,70,50,30,60,80,199};
bubble_sort(arr,SIZE);
print(arr,SIZE);
return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  冒泡 排序 冒泡排序