2014-06-27 3 views
2

Я пытаюсь получить этот алгоритм сортировки для сортировки самого большого в наименьшем из массива. Вот что у меня есть:java - самый большой и самый маленький сорт - самый большой из них не работает

private void sort(int[] data) { 
    int min; 
    for (int index = 0; index < data.length - 1; index++) { 
     min = index; 
     for (int scan = index + 1; scan < data.length; scan++) { 
      if (data[scan] > data[min]) min = scan; 
      swap (data, min, index); 
     } 
    } 
} 

private void swap(int[] data, int pos0, int pos1) { 
    int temp = data[pos0]; 
    data[pos0] = data[pos1]; 
    data[pos1] = temp; 
} 

выход:

3 3 4 2 2 2 2 1 1 1 1 1 1 

почему это второй по величине число из строя?

Я продолжаю проходить через это, и я явно что-то пропускаю.

ответ

6

вы закрываете, если заявление ранее

if (data[scan] > data[min]) min = scan; 
      swap (data, min, index); 

swap() получит ссылаться во внимание менее if условия

+0

Я собирался на заявление, если только для покрытия мин = сканированию; Должен ли он также охватывать своп? –

+0

Я собирался поменять местами в любом случае, но я вижу, что мне нужно поменяться только тогда, когда условие будет выполнено - приветствия! Я отмечу этот ответ, когда пройдет 10 минут –

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