这是什么样的排序算法?

时间:2010-07-03 19:50:22

标签: algorithm sorting

int aux;

        for(int i=0;i<array.Count()-1;i++)
        {
            for(int j=i+1;j<array.Count();j++)
            {
                if(array[i] > array[j])
                {
                    aux = array[j];
                    array[j] = array[i];
                    array[i] = aux;
                }
            }
        }

2 个答案:

答案 0 :(得分:8)

这是一个愚蠢的selection sort。不要将array[i]与其后的最小元素交换,而是将其与每个较小的元素交换。最终,正确的元素显然会在正确的位置结束,并且你会编写更少的代码。

效率低得多,因为执行了更多的交换,但它基本上是选择排序。

答案 1 :(得分:1)

这几乎是选择排序,除了你没有用当前元素交换最小剩余元素,但你用当前元素交换小于当前元素的每个剩余元素,直到当前元素是最小元素。