哪位大大可以告诉我C++中<起泡排序法>的流程与及举个例子啊?

来源:百度知道 编辑:UC知道 时间:2024/05/24 14:31:13
最好以一维数组举例,以及它的内外循环的要点.

按从小到大排列

#include<iostream.h>
main()
{ int a[10]={9,8,7,6,5,4,3,2,1,0};
int t,i,j;
for(i=0;i<10;i++)
for(j=i+1;j<10;j++)
if(a[i]>a[j])
{t=a[i];
a[i]=a[j];
a[j]=t;
}
for(i=0;i<10;i++)
cout<<a[i]<<endl;
}

每一次内循环是相邻的两个数比较,如果前一个数比后一个数大,则互换位置
每一次外循环则是把当前最大的数放在最下边,具体说明可以找一本算法的数看看

void doit(int* in,int count)
{
int x;
int y;
int temp;
for(y=0;y<count-1;y++)
{
for(x=1;x<count-y;x++)
{
if((*(in+x))>(*(in+x-1)))
{
temp=(*(in+x-1));
(*(in+x-1))=(*(in+x));
(*(in+x))=temp;
}
}
}
}