Sobes.tech
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