Junior — Middle
Java dilində istifadə olunan sıralama alqoritmlərini sadalaya bilərsən və onların xüsusiyyətlərini qısa şəkildə təsvir edə bilərsənmi?
sobes.tech Süni İntellekt
AI-dan cavab
Java-da massivlər və kolleksiyaların sıralanması üçün müxtəlif algoritmlər istifadə olunur, məlumat növünə və JDK versiyasına görə:
-
Arrays.sort() primitiv növlər üçün (int, long, double və s.) — Dual-Pivot Quicksort algoritmindən istifadə edir. Bu, sürətli sıralama ilə təkmilləşdirilmişdir, orta mürəkkəblik O(n log n), lakin ən pis halda O(n²) qədər pisləşə bilər.
-
Arrays.sort() obyektlər üçün (məsələn, Integer, String) — Java 7-dən etibarən TimSort istifadə olunur, bu, birləşdirmə və yerləşdirməyə əsaslanan hibrid algoritmdir. Stabil və qismən sıralanmış məlumatlar üçün effektivdir.
-
Collections.sort() — daxili olaraq Listlər üçün Arrays.sort() çağırır, TimSort istifadə edir.
Xüsusiyyətlər:
- Dual-Pivot Quicksort klassik Quicksort-dan daha sürətlidir, lakin stabil deyil.
- TimSort stabildir və artıq qismən sıralanmış məlumatlarda yaxşı işləyir.
İstifadə nümunəsi:
int[] arr = {5, 3, 8, 1};
Arrays.sort(arr); // int üçün Dual-Pivot Quicksort
List<String> list = Arrays.asList("banana", "apple", "pear");
Collections.sort(list); // obyektlər üçün TimSort