george1703 Δημοσ. 5 Απριλίου 2017 Δημοσ. 5 Απριλίου 2017 private static long merge(int[] a, int left, int mid, int right, int[] temp) { int i = left; int j = mid; int counter = left; long inversionCount = 0; while (i < mid && j <= right) { if (a[i] <= a[j]) { temp[counter++] = a[i++]; } else { temp[counter++] = a[j++]; inversionCount += (mid - i); } System.out.println(k); } while (i < mid) { temp[counter++] = a[i++]; } while (j <= right) { temp[counter++] = a[j++]; } for (int c = left; c <= right; c++) { a[c] = temp[c]; } return inversionCount; } } Εχω την παραπάνω κλάση mergesort. Θα ήθελα να προσθέρω σε μια μεταβλητή πχ var κάθε φορά που υπάρχει αντιστροφή μεταξύ δυο αριθμών που απέχουν μεταξύ τους κατα 1. Οταν ισχύει αυτό τότε var++. } else { temp[counter++] = a[j++]; inversionCount += (mid - i); } προσπάθησα στο παρακάτω κομμάτι να προσθέσω if(a[j]-a==1) var++ , αλλα δεν λειτούργησε,,,,Μπορεί κάποιος να προτείνει λύσει.....???!!!!!
nilosgr Δημοσ. 5 Απριλίου 2017 Δημοσ. 5 Απριλίου 2017 Ειναι οντως mergesort; Που είναι η αναδρομή; Που γινεται το merge;
george1703 Δημοσ. 5 Απριλίου 2017 Μέλος Δημοσ. 5 Απριλίου 2017 ακυρο παιδιά. ...τελικά το έκανα...Να διαγραφεί το θέμα
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα