Hàm sắp xếp của mình bị lỗi gì vậy mọi người? Phép so sánh compareTo mình kiểm tra đúng rồi khi chạy lại báo lỗi ở vòng while
Đây là code của mình:
public void insertionSort(StudentNotes[] data) {
for (int i = 1; i < size; i++) {
int j = i-1;
StudentNotes temp = data[i];
while (data[j].compareTo(temp) > 0 && j >= 0) {
data[j + 1] = data[j];
j--;
}
data[j + 1] = temp;
}
}
Đây là thông báo lỗi:
Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: -1
at midExam.DatabaseDSA_Note.insertionSort(DatabaseDSA_Note.java:152)
at midExam.DatabaseDSA_Note.main(DatabaseDSA_Note.java:68)
Dòng 152 là ngay chỗ vòng while.