单向冒泡排序基本思想(假设由小到大排序):从第一个记录开始,依次对相邻的两个记录进行比较,当前面的记录大于后边的记录时,交换其位置,进行一轮比较和换位之后,n个记录中的最大记录位于第 n 位,然后对前面的 (n-1) 个记录进行第二轮比较;重复该过程,直到剩下一个时候为止。
#include<iostream>
using namespace std;
//交换位置
void Swap(int &a,int &b)
{
int temp;
temp=a;
a=b;
b=temp;
}
//冒泡排序
void Bubble_Sort(int *a,int n)
{
int i,j;
for(i=0;i<n-1;i++)
{
for(j=n-1;j>i;j--)
{
if(a[j-1]>a[j])
Swap(a[j-1],a[j]);
}
}
}
//输出!!
void display(int *a,int n)
{
for(int i=0;i<n;i++)
cout<<a[i]<<" ";
cout<<endl;
}
int main()
{
int a[]={1,3,5,8,9,2,4,6,7};
int length_a=sizeof(a)/sizeof(a[0]);
cout<<"排序前数组:";
display(a,length_a);
Bubble_Sort(a,length_a);
cout<<"排序后数组:";
display(a,length_a);
system("pause");
return 0;
}
输出结果为: