浮点数选择排序
void xuanze()
{
double num[5]={3.14159,4.3225,3.1415927,1.234567,1.234568};
int len=sizeof(num)/sizeof(num[1]);
double *max=NULL;
int i;
for(i=0;i<len;i++)
{
max=num+i;
for(int j=i+1;j<=len;j++)
{
if(*max-*(num+j)<=-1e-15)
max=num+j;
}
if(max!=num+i)
{
double temp;
temp=*(num+i);
*(num+i)=*max;
*max=temp;
}
}
for(i=0;i<len;i++)
{
printf("%lf ",num[i]);
}
}
运行结果
冒泡排序
void maopao()
{
float num[5]={4.5678,3.123,6.4,3.1235,4.56789};
int len=sizeof(num)/sizeof(num[1]);
for(int i=0;i<len-1;i++)
{
for(int j=0;j<len-1-i;j++)
{
if(num[j+1]-num[j]>=1e-6)
{
float temp;
temp=num[j];
num[j]=num[j+1];
num[j+1]=temp;
}
}
}
for(int i=0;i<len;i++)
{
printf("%f ",num[i]);
}
}
运行结果