Рекурсивная пузырьковая сортировка
Начал учить java. Делаю тестовые задание - сортировка пузырьком. Для этого захотелось сделать рекурсивную функцию, но выдает ошибку.
Ошибка:
Exception in thread "main" java.lang.StackOverflowError at com.company.Q11.Q(Q11.java:17)
Main:
package com.company;
public class Main {
public static void main(String[] args) {
Q11 Q11 = new Q11();
double[] arr = new double[] {8,6,4,2,1,0};
Q11.Q(arr);
}
}
Q11:
package com.company;
public class Q11 {
void Q (double[] arr) {
double temp;
boolean tf = false;
for(int i = 0; i < arr.length - 1; i++) {
if(arr[i] > arr[i + 1]) {
tf = true;
temp = arr[i];
arr[i] = arr[i + 1];
arr[i + 1] = temp;
}
}
if (tf = true) Q(arr);
}
}
Ответы (1 шт):
Автор решения: timur
→ Ссылка
У вас всё правильно, только для сравнения надо использовать оператор ==:
if (tf == true) Q(arr);