#include<stdio.h>
void print(int a[],int n){
for(int i=0;i<n;i++){
printf("%d ",a[i]);
}
printf("\n");
}
void swap(int *num_a,int *num_b){
int temp = *num_a; //记录num_a的地址
*num_a = *num_b;
*num_b = temp;
}
void Bubble(int a[],int n){
int i,j,flag=1;
for(i=0;i<n && flag;i++){ //每一轮i的for循环前判断数组是否有序,若flag为0,说明此时已经有序,第一个i个for循环直接结束。
flag = 0; //flag若一直为0,说明从下往上 a[j-1]一直小于a[j]不用交换值, 第i个的位置已是这一轮最小的值
for(j=n-1;j>i;j--){
if(a[j-1]>a[j]){
swap(&a[j-1],&a[j]);
flag=1;
}
}
}
}
int main(){
int a[10]={3,1,2,4,5,6,9,7,10,8};
print(a,10);
Bubble(a,10);
print(a,10);
}
冒泡排序优化算法 不用return
最新推荐文章于 2022-01-09 09:57:46 发布