void Swap(int *p,int *q)//交换数据
{
int temp=*p;
*p=*q;
*q=temp;
}
void Print(int *a,int count)//打印
{
for(int i=0;i<count;i++)
cout<<*(a+i)<<"-";
cout<<endl;
}
void XZSort(int *a,int size)//选择
{
assert(size>0);
int count=(int)sqrt((double)size);//要选择的数目
for(int i=0;i<count;i++)
{
int k=i;
for(int j=i+1;j<size;j++)
{
if(a[k]>a[j])k=j;
}
if(i!=k)
{
Swap(&a[i],&a[k]);
}
}
Print(a,count);
}
void MPSort(int *a,int size)//冒泡
{
assert(size>0);
int count=(int)sqrt((double)size);
for(int i=0;i<count;i++)
{
for(int j=size-1;j>i;j--)
if(a[j]<a[j-1])
{
Swap(&a[j],&a[j-1]);
}
}
Print(a,count);
}
int main(array<System::String ^> ^args)
{
int a[]={5,338,9,2,445,66,8,17,5,25,0};
cout<<"选择排序结果:"<<endl;
XZSort(a,11);
cout<<"冒泡排序结果:"<<endl;
MPSort(a,11);
getchar();
return 0;
}