2010-07-03 2 views
1
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; 
       } 
      } 
     } 

ответ

8

Это тупик selection sort. Вместо замены array[i] с минимальным элементом после него вы просто меняете его с помощью каждого меньшего элемента. В конце концов правильный элемент, очевидно, окажется в правильном положении, и вы будете писать меньше кода.

Это намного менее эффективно, потому что выполняется больше свопов, но в основном это сортировка.

+0

Почему downvote? – IVlad

+0

Я не спускал вниз. Спасибо за ответ. Это фрагмент кода, который я написал в Java в старшей школе, и я придумал его, когда мне сначала нужно что-то отнести. Раньше я не знал, какие алгоритмы сортировки существуют, или, по крайней мере, я никогда не думал об этом. Я только что нашел его где-то и преобразовал его в C#. Он все еще работает. – Para

1

Это почти сортировка выбора, за исключением того, что вы не меняете минимальный оставшийся элемент с текущим элементом, но вы заменяете каждый оставшийся элемент, который меньше текущего с текущим элементом, пока текущий элемент не станет минимальным.

Смежные вопросы