首页 > 解决方案 > 以下选择排序算法有什么问题

问题描述

void main()
{
    int a[] = { 10, 3, 4, 2, 1, 0 };
    int i = 0;
    int temp_index;
    int temp_min;
    int temp;
    a[i];
    int j;
    a[j];
    int n = sizeof(a) / sizeof(int);
    for (; i < n - 1; i++)
    {
        int temp_min = i;
        int j = i + 1;
        for (; j < n; j++)
        {
            if (a[i] > a[j])
            {
                temp_min = j;
            }
        }

        int temp = a[temp_min];
        a[temp_min] = a[i];
        a[i] = temp;
    }

    int k = 0;

    for (; k < n; k++)
    {
        printf("%d", a[k]);
    }
}

标签: cselection-sort

解决方案


你比较

if (a[i] > a[j]) {
    temp_min = j;
}

代替 if (a[temp_min] > a[j]) { ... }


推荐阅读