//冒泡排序
#include <stdio.h>
void display(int a[],int n){
for(int i=0;i<n;i++){
printf("%d",a[i]);
}
printf("\n");
}//for循环实现遍历数组
void Bubblesort(int a[],int n,int i){
int j,temp;
bool exchange;
if(i==n-1){
return;//相当于只剩下最后一个元素,则不需要再排序
}
else{
exchange=false;
for(j=n-1;j>i;j--){
if(a[j]<a[j-1])//相邻元素进行比较,这种情况则需要交换
{
temp=a[j];
a[j]=a[j-1];
a[j-1]=temp;
exchange=true;
}
}
if(exchange==false)//没有进行循环变化
{
return;
}
else{
Bubblesort(a,n,i+1);
}
}
}
int main(){
int n=10;//数组元素个数
int a[]={4,7,2,8,5,1,3,0,9,6};
printf("数组排序前:");
display(a,n);
Bubblesort(a,n,0);//0的位置是待排序的第一个元素
printf("数组排序后:");
display(a,n);
}