Java'da Birleştirme Sıralama Programı: Birleştirme Sıralaması ve Hızlı Sıralama Arasındaki Fark

Yayınlanan: 2021-05-25

İçindekiler

JAVA'da Merge Sort Programına Giriş

Adından da anlaşılacağı gibi, JAVA'daki birleştirme sıralama programı bir sıralama algoritmasıdır. Klasik olarak JAVA'da böl ve yönet algoritması olarak kavramsallaştırılmıştır. Java'daki birleştirme sıralama programı, bir girdi dizisini, bunlar doğrudan çözülecek kadar basit olana kadar, kendisini oluşturan iki veya daha fazla alt probleme özyinelemeli olarak bölerek çalışır.

Bileşen alt problemler, ana problemle benzer veya bir şekilde ilgili olabilir. Her bir alt problemin bireysel çözümleri daha sonra orijinal ana problemin çözümünü elde etmek için birleştirilir.

Java'da Merge Sort Programı Nasıl Çalışır?

Daha önce yinelendiği gibi, JAVA'daki birleştirme sıralama programı bir böl ve yönet algoritmasıdır. Bu, dizi öğelerinin sıralama işlemi boyunca birbirine göre orijinal konumlarını koruduğu anlamına gelen kararlı bir sıralamadır.

  • Bölmek: Bu adımda, bir girdi dizisi kendisini oluşturan iki yarıya bölünür. Bu adım, daha fazla bölünecek yarım dizi kalmayana kadar elde edilen tüm yarım diziler için sürekli olarak tekrarlanır.
  • Conquer: Bu adımda, bölünmüş diziler sıralanır ve son sıralı diziye ulaşmak için aşağıdan yukarıya doğru birleştirilir.

Java'da Quicksort ve Merge Sort Programı Arasındaki Fark

İşlevsel olarak benzer olmasına rağmen, JAVA'da hızlı sıralama ve birleştirme sıralama arasındaki temel farka uygun vurgu yapılmalıdır.

  • Mekanizma : Quicksort dahili, yerinde bir sıralama algoritmasıdır, oysa mergesort harici, yerinde olmayan bir sıralama algoritmasıdır. Hızlı sıralamada, öğeler pivot olarak bilinen temel bir öğeye göre sıralanır. Pivot genellikle bir giriş dizisindeki orta değerdir. Pivottan daha küçük bir değere sahip elemanlar pivotun sol tarafına, daha büyük bir değere sahip elemanlar ise pivotun sağ tarafına itilir. Burada sol tarafa sol bölme, sağ tarafa da sağ bölme denir. Aksine, mergesort, bir diziyi yalnızca bir eleman kalana kadar art arda iki alt diziye (n/2) böler. Daha sonra sıralanmış diziyi oluşturmak için alt dizileri birleştirir.
  • Uygulama: Quicksort, küçük diziler için uygun olsa da, mergesort, boyutundan bağımsız olarak herhangi bir diziyle çalışır.
  • Hız : Hızlı sıralama durumunda, veri kümesi ne kadar küçük olursa, algoritma o kadar hızlı olur. Mergesort ise tüm veri kümeleri için tutarlı bir hızda çalışır.
  • Alan gereksinimi ve bellek kullanımı: Daha önce belirtildiği gibi, mergesort harici, yerinde olmayan bir sıralama algoritmasıdır. Uzay karmaşıklığı O(n)'dir. Bu nedenle, yardımcı diziyi sıralamak için ek bir (O ​​(n)) depolaması gerektirir.

Ayrıca Okuyun: Örneklerle Java'daki Değişmez Türleri

JAVA'da Merge Sort Programının Zaman Karmaşıklık Analizi

JAVA'daki birleştirme sıralama programı, O (n*log n) zaman karmaşıklığına sahiptir. Binary Search'e göre, bir sayı her adımda yarıya bölündüğünde, logaritmik 'log n' fonksiyonu ile temsil edilebilir. Adım sayısı (en fazla) log n +1 ile gösterilebilir. Herhangi bir alt dizinin ortası O (1)'dir.

Bu nedenle, alt dizileri birleştirmek için O(n)'lik bir çalışma süresi gerekecektir. Bu nedenle, JAVA'daki birleştirme sıralama programı için toplam süre n olur (log n +1). Bu, üç durumda da (en kötü, ortalama ve en iyi) O (n*log n) zaman karmaşıklığına tekabül eder, çünkü birleştirme sıralama her zaman iki yarıyı birleştirmek için doğrusal zaman alır.

Dünyanın En İyi Üniversitelerinden Online Yazılım Kursları Öğrenin . Kariyerinizi hızlandırmak için Yönetici PG Programları, Gelişmiş Sertifika Programları veya Yüksek Lisans Programları kazanın.

Özetliyor

İnsanlar için sıralanmış verilerin mantıksal olarak sağlam ve anlaşılması daha kolay olduğu gibi, sıralanmış diziler de bilgisayarların çalışması için daha yönetilebilirdir. JAVA'daki birleştirme sıralama programının avantajlı olduğu yer burasıdır. Verimli, genel amaçlı, karşılaştırmaya dayalı bir sıralama algoritmasıdır.

Java, tam yığın yazılım geliştirme hakkında daha fazla bilgi edinmek istiyorsanız, upGrad & IIIT-B'nin çalışan profesyoneller için tasarlanmış ve 500+ saatlik zorlu eğitim, 9+ projeler ve ödevler, IIIT-B Mezunları statüsü, pratik uygulamalı bitirme projeleri ve en iyi firmalarla iş yardımı.

Programlamada sıralama nedir?

Sıralama, nesneleri belirli bir sıraya koyma tekniğidir. Bu genellikle onları daha yönetilebilir kılmak veya erişimlerini kolaylaştırmak için yapılır. Bilgisayar biliminde veri yapıları için sıralama algoritmalarımız var. Bu sıralama algoritmaları iki kategoriye ayrılabilir. Biri karşılaştırma tabanlı sıralama algoritmaları, diğeri ise ekleme tabanlı sıralama algoritmalarıdır. Karşılaştırmaya dayalı sıralama algoritmalarında, bir öğe, aralarında ortak olan tek anahtar olan eşleşen sıralama anahtarını bulmak için başka bir öğeyle karşılaştırılır. Ekleme tabanlı sıralama algoritmalarında yeni eleman bir dizinin önüne eklenir ve sondaki eleman başa kaydırılır.

Programlamada sıralama algoritması türleri nelerdir?

Sıralama algoritmaları çoğunlukla 3 türe ayrılır: sıralı sıralama, paralel sıralama, bölümleme sıralama. Sıralı sıralamayı anlamak en kolayıdır. Kafamızda sıralama yaparken kullandığımızdır. Her şey küçükten büyüğe sıralanır. En yaygın sıralı sıralama algoritmaları, eklemeli sıralama, kabarcıklı sıralama, hızlı sıralama ve birleştirilmiş sıralamadır. Tüm bu sıralama algoritmaları kolayca paralelleştirilebilir. Paralel sıralama durumunda, görevlerin her biri önceki görevin sonucuna bağlıdır. Bu nedenle, çıktının sırası garanti edilmez. Kullanılan iki paralel sıralama algoritması topolojik sıralama ve aşağıdan yukarıya birleştirmedir. Bölümleme sıralama algoritmaları, her bir alt dizinin ayrı ayrı sıralanabilmesi için giriş dizisini bölümlere ayırmaya çalışır. Bölümleme sıralama algoritmaları arasında ikili arama, zincirleme, yığın sıralama ve sayı tabanı sıralama bulunur.

Birleştirilmiş sıralama ile hızlı sıralama arasındaki farklar nelerdir?

Birleştirme sıralama, bir böl ve yönet algoritmasıdır. Bir listeyi bazı pivot öğelerine dayalı olarak iki bölüme ayırır, bölümlerin her birini yinelemeli olarak sıralar ve ardından çıktıyı birleştirir. Birleştirme adımı, bir paralel birleştirme sıralaması ile yapılabilir. Hızlı sıralama, bir O(nlogn) sıralama algoritmasıdır. Çok daha basit bir algoritmadır, ancak her seferinde rastgele bir dizi öğesi üzerinde dönmesi gerekir.