帮帮忙,C语言初学者的疑惑

如何在一个一维数组中找到最小值并放在第一个位置且不改变其他数的位置

供参考:

#include <stdio.h>
int main()
{
    int a[10] = { 1,8,5,7,3,9,10,2,6,4 }, i, n, min, min_i;
    n = sizeof(a) / sizeof(int);
    min = a[0]; min_i = 0;
    for (i = 0; i < n; i++)
    {
        if (a[i] < min) {
            min = a[i];
            min_i = i;
        }
    }
    if (min_i != 0)
    {
        min = a[0];
        a[0] = a[min_i];
        a[min_i] = min;
    }
    for (i = 0; i < n; i++)
        printf("%4d", a[i]);
    printf("\n");
    return 0;
}

举个例子,不改变其他数的位置,是绝对位置还是相对位置?