一个for循环完成冒泡排序
///一个for循环完成冒泡排序#include <iostream>
using namespace std;
void swap_arr(int& a,int& b)
{
int temp=a;
a=b;
b=temp;
}
void print_arr(int a[],int n)
{
for(int i=0;i<n;i++){
if(i>0)
cout<<" ";
cout<<a[i];
}
}
void bubble_sort(int a[],int n)
{
for(int i=0;i<n-1;i++){
if(a[i]>a[i+1])
swap_arr(a[i],a[i+1]);
if(i==n-2){ //当i的自增到本轮循环最大
i=-1; //i赋值-1开始新一轮循环
n--; //i的值自增 n的值自减
}
}
}
int main() {
int a[]={31,25,64,53,84,41,79};
int n=sizeof a/sizeof a[0];
print_arr(a,n);
cout<<"\n--------split Line-----------\n";
bubble_sort(a,n);
print_arr(a,n);
return 0;
}
[此贴子已经被作者于2019-1-10 15:01编辑过]