//用同名重载函数实现, 三种数据类型数组的排序
//VC2005 下编译测试通过
#include<iostream>
void Sort( int a[], int len )
{
int k,t;
for ( int i=0; i < len-1; i++ )
{
k=i;
for ( int j=i+1; j < len; j++ )
{
if ( a[k] > a[j] )
{
k=j;
}
}
if ( k!=i)
{
t=a[i];
a[i]=a[k];
a[k]=t;
}
}
}
void Sort( double a[], int len )
{
double t;
int k;
for ( int i=0; i < len-1; i++ )
{
k=i;
for ( int j=i+1; j < len; j++ )
{
if ( a[k] > a[j] )
{
k=j;
}
}
if ( k!=i)
{
t=a[i];
a[i]=a[k];
a[k]=t;
}
}
}
void Sort( float a[], int len )
{
float t;
int k;
for ( int i=0; i < len-1; i++ )
{
k=i;
for ( int j=i+1; j < len; j++ )
{
if ( a[k]>a[j] )
{
k=j;
}
}
if ( k!=i)
{
t=a[i];
a[i]=a[k];
a[k]=t;
}
}
}
int main()
{
int a[10]= { 100, 98, 6, 12, 21, 20, 78, 65, 78, 54 };
float f[10]={ 76.4, 32.4, 56.4, 90, 12, 1, 2, 34, 45.4, 23.1 };
double d[10]={ 23.4, 1, 2, 22, 21.2, 34.5, 5, 6, 2.1, 1.1};
Sort( a, 10);
Sort( f, 10);
Sort( d, 10);
//输出排序后的数组...
for ( int i=0; i<10; i++ )
{
std::cout<< a[i]<<" ";
}
std::cout<< "\n";
for ( int i=0; i < 10; i++ )
{
std::cout<< f[i] << " ";
}
std::cout<<std::endl;
for ( int i=0; i < 10; i++ )
{
std::cout<< d[i] << " ";
}
return 0;
}
//PS: 楼上说得不错,如果想简便当然是模板实现比较方便, 但LZ要求用函数重
//载实现, 呵呵,所以楼上的虽然排序结果正确,却不符合楼主的题意!呵呵
温馨提示:答案为网友推荐,仅供参考