C语言中,选择法对10个数排序,出现顺序错误

C语言中,通过定义函数,用选择法对10个数排序,全是正数时没问题,但当输入负数时,出现正数由小到大排列,然后负数由大到小排列

问题相关代码
#include <stdio.h> 

int BDX(int* SHUZU[10])
{
    int min, x, y, z;
    for (x = 0; x < 9; x++)
    {
        min = x;
        for (y = x + 1; y < 10; y++)
            if (SHUZU[min] > SHUZU[y]) min = y;
        z = SHUZU[x];
        SHUZU[x] = SHUZU[min];
        SHUZU[min] = z;
    }
    return SHUZU[10];
}

int main()
{
    int BDX(int SHUZU[10]);
    int a[10], i, n=0;
    for (i = 0; i < 10; i++)
        scanf_s("%d", &a[i]);
    for (i = 0; i < 10; i++)
        BDX(a);
        
    for (i = 0; i < 10; i++)
        printf("%d ", a[i]);
    
    return 0;
}
运行结果
1 3 5 7 -10 -8 -4 -5 9 10

1 3 5 7 9 10 -10 -8 -5 -4
麻烦大家指点一下,如何能正确的由小到大输出 ?