Я столкнулся с очень запутанной ситуацией, я написал эту программу BubbleSort, и она прошла нормально. с правильным выходом:Bubble Сортировка Java различных выходов
public class BubbleSortInput {
private static void Sorting(int[] intArray)
{
int i, temp=0;
int n = intArray.length;
for(i=0; i < n - 1; i++)
{
for(int j = 0; j < n-i-1; j++)
{
if(intArray[i]>intArray[i+1])
{
temp = intArray[i+1];
intArray[i] = intArray[i+1];
intArray[i] = temp;
}
}
}
}
public static void main(String[] args) {
int array[] = {1,5,65,34,76,234};
Sorting(array);
for(int k = 0; k < array.length; k++)
{
System.out.println(array[k]);
}
}
}
Однако я пытался писать в основном один и тот же код, в основном методе, в другом классе:
class BubbleSort {
public static void main(String[] args) {
int numbers[] = {12,43,65,12,65,92,32,54};
int i,temp=0;
for(i=0; i < numbers.length-1; i++)
{
for(int j = 0; j < numbers.length-i-1; j++)
{
if(numbers[i]>numbers[i+1])
{
temp = numbers[i+1];
numbers[i] = numbers[i+1];
numbers[i]= temp;
}
}
}
for(i=0;i<numbers.length;i++)
{
System.out.println(numbers[i]);
}
}
}
Выход я на второй файл совершенно неправильно , хотя я использовал почти тот же код, может кто-нибудь объяснить это, пожалуйста?
Output:
12
43
12
12
65
32
32
54
Вы пробовали отлаживать код? См. [Что такое отладчик и как он может помочь мне диагностировать проблемы?] (Http://stackoverflow.com/q/25385173/5221149) – Andreas
Внутренний цикл должен использовать «j» как индекс, а не «i» – sprinter
I не вижу, как любой из них может работать, учитывая, что 'intArray [i] = intArray [i + 1]' и 'numbers [i] = numbers [i + 1]' оба присваивают неправильный путь. – Andreas