您的位置:首页 > 编程语言 > C语言/C++

[算法练习]冒泡排序的C语言实现

2017-03-22 22:43 477 查看
#include <stdio.h>

int length;
void bubble_sort(int A[]){
int i;
int len=length;
int temp;
int n=0;//n is the times of exchange operation
while(len>=2){
for(i=0;i<len-1;i++){
/*	Bubble A[i]:
move i from 0 to len-2, and compare A[i] and A[i+1],
if A[i]>A[i+1] then exchange them,
thus at last the largest number in the array move to
the last of this array.
then len <- len-1, and repeat the step above.
*/
if(A[i]>A[i+1]){
temp=A[i];
A[i]=A[i+1];
A[i+1]=temp;
n++;
}
}
len--;
}
printf("\ntimes of exchange operation is %d",n);
}

int main(){
int a[]={13,4,9,5,2,7,16,21,12,1};
int b[]={3,5,7,8,12,5,13,16,21,15};
length=sizeof(a)/sizeof(a[0]);//get length of a[]

int i;
printf("before:\t");
for(i=0;i<length;i++){
printf("%d ",a[i]);
}
bubble_sort(a);
printf("\nafter:\t");
for(i=0;i<length;i++){
printf("%d ",a[i]);
}
printf("\n--------------------------\n");
printf("\nbefore:\t");
for(i=0;i<length;i++){
printf("%d ",b[i]);
}
bubble_sort(b);
printf("\nafter:\t");
for(i=0;i<length;i++){
printf("%d ",b[i]);
}
getchar();
}


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐