13,226
社区成员
我用c++的冒泡,插入和选择对一组随机数进行排序,总有一个11在排序前后位子不变
这是冒泡的代码:
#include<iostream>
#include<stdlib.h>
#include<ctime>
using namespace std;
void chooseSort (int a[],int n);
int main()
{
int a[10];
int i;
srand(time(NULL));
for (i=0;i<50;i++)
a[i]=rand();
cout<<"排序前:"<<endl;
for (i=0;i<50;i++)
{
cout<<a[i]<<" ";
if ((i+1)%10==0)
cout<<endl;
}
chooseSort (a,50);
cout<<"排序后:"<<endl;
for (i=0;i<50;i++)
{
cout<<a[i]<<" ";
if ((i+1)%10==0)
cout<<endl;
}
return 0;
}
void chooseSort (int a[],int n)
{
int i,j,t;
for (i=0;i<n-1;i++)
{
j=i;
for (t=i+1;t<n;t++)
if (a[j]>a[t])
j=t;
swap(a[j],a[i]);
}
}
这是结果:
求大神指点