2013-06-07 2 views
-4

У меня проблема с моим алгоритмом сортировки пузырьков. Я пытался найти решение, но я не могу решить мою проблему.Алгоритм сортировки пузырьков в Java

это сортировка часть кода

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

EDIT: Вот рабочий код

for (int i = values.length - 1; i > 0; i--) { 
     for (int j = 0; j < i; j++) { 
      if (values[j] > values[(j + 1)]) { //Check if sort is needed 
       int temp = values[j]; 
       values[j] = values[j+1]; 
       values[j+1] = temp; 
      } 
     } 
    } 
+6

И проблема в том, что проблема? Вы пробовали отлаживать его? – mwerschy

+0

Проблема была в том, что он не сортировал ее правильно. – Zeta

ответ

6

Вы должны быть переключение пунктов j и j+1 не j и i. Обратите внимание, что вы сравнили values[j] > values[j+1], но переключили values[j] с values[i].

+0

Спасибо, что это решило проблему. – Zeta

0

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

int temp = values[j+1]; 
values[j+1] = values[j]; 
values[j] = temp 
Смежные вопросы