这是什么算法?

时间:2014-01-24 14:08:50

标签: java algorithm sorting

我似乎无法理解这种特殊的算法。它似乎是bubblesort但不是传统意义上的。它是什么?

public static void main(String[] args) 
{
    double[] a = {0.75, 0.5, 1.0};                          
    sort(a);

    for (int i = 0; i < a.length; i++)
        System.out.println(a[i]);
}

public static void sort(double[] tal)
{
    double p = 0;
    int k = 0;

    for (int i = 0; i < tal.length - 1; i++)
    {
        k = i;
        for (int j = i + 1; j < tal.length; j++)
        {
            if (tal[j] < tal[k])
                k = j;
        }

        p = tal[i];
        tal[i] = tal[k];
        tal[k] = p;
    }
}

3 个答案:

答案 0 :(得分:23)

起初,我错误地认为它是Insertion sort。它是Selection sort(来自维基百科条目)

Selection sort

答案 1 :(得分:5)

这是selection sort。内循环在剩余元素中找到最小的元素,然后与未分类范围的第一个元素交换。

答案 2 :(得分:2)

这是selection sortInsertion sort适用于forwhile循环。

相关问题