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;
}
}
}
答案 0 :(得分:8)
这是一个愚蠢的selection sort。不要将array[i]
与其后的最小元素交换,而是将其与每个较小的元素交换。最终,正确的元素显然会在正确的位置结束,并且你会编写更少的代码。
效率低得多,因为执行了更多的交换,但它基本上是选择排序。
答案 1 :(得分:1)
这几乎是选择排序,除了你没有用当前元素交换最小剩余元素,但你用当前元素交换小于当前元素的每个剩余元素,直到当前元素是最小元素。