冒泡法与递归解决绝对值排序-99, 98, 102, -101, 100
冒泡法与递归解决绝对值排序-99, 98, 102, -101, 100
#include <stdio.h>
#include <math.h>
void swap(int* a, int* b)
{
int tmp;
tmp = *a;
*a=*b;
*b=tmp;
}
void printf_list(int list[], int len)
{
int i;
for (i = 0; i < len; ++i)
{
printf("%d\t", list[i]);
}
printf("\n");
}
void sort_soap(int list[], int len, int fabs_(int ,int))
{
int i, j;
for (j = 0; j < len-1; j++)
{
for (i = 0; i < len-j-1; i++)
{
if ( fabs_(list[i], list[i + 1]) > 0 )
{
//交换相邻的两个数
swap(&list[i], &list[i + 1]);
}
}
}
}
int fabs_(int x ,int y)
{
int z;
z=fabs((float)x)-fabs(/*(float)*/y);
return z;
}
/*if(z>0)return 1;
else return */
/*
5
99 98 102 101 100
*/
void main(void)
{
int list[128]={-99, 98, 102, -101, 100};
int m=5;
sort_soap(list, m, fabs_);
printf_list(list, m);
}