SORU
5 NİSAN 2010, PAZARTESİ


Nasıl doğrusal zaman sayı medyan yığınları kullanarak bulabilirim?

Wikipedia diyor ki:

Seçim algoritmaları: min Bulma, max, min ve max hemmedyanya hatta k-th en büyük unsur olabilir doğrusal zaman kümeler kullanılarak yapılmıştır.

Dediklerinin hepsi yapılabilir ve nasıl değil.

Bana bunun nasıl yapılacağı hakkında bazı başlangıç yığınları kullanarak verebilir misiniz?

CEVAP
9 NİSAN 2010, Cuma


Sabit zaman (ve doğrusal zaman öbek oluşturmak için) min, max ve ortalama bulmak için min-max-medyan bir yığın kullanın. Hazırlanmasında, en küçük/en büyük değeri bulmak için-istatistik ağaçları kullanabilirsiniz. Bu veri yapılarının her ikisi de this paper on min-max heaps [pdf link] olarak açıklanmıştır. Min-max yığınları alternatif ikili kümeler min-ve max kümeler-kümeler arasında.

Gazeteden: min-max-medyan Bir yığın aşağıdaki özelliklere sahip: ikili bir yığın

1) Tüm elemanları ortanca kök yer almaktadır

2) kök sol Alt boyutu tavan min-max, bir yığın Hl[((n-1)/2)] içeren unsurları az ya da ortalama eşit. Sağ alt boyut katın max-min heap İk bir[((n-1)/2)] içeren tek öğeleri daha büyük veya medyan eşit.

Kağıt gibi bir yığın oluşturmak için nasıl açıklar.

Edit: okuma Üzerine kağıt daha iyice göründüğü gibi olsa bina min-max-medyan yığınları gerektiren, yapma medyan (FTA: "Bul medyan tüm n eleman kullanarak herhangi bir bilinen doğrusal-zaman algoritmaları"). Bu, yığın yerleşik sonra medyan sadece soldaki min-max yığın ve sağdaki max-min heap arasındaki dengeyi koruyarak koruyabilirsiniz " dedi. DeleteMedian ya da max-min heap dk ya min-max yığın maksimum dengesini korur (hangisi) ile kökünden değiştirir.

Eğer öyleyse şansın yokmuş sabit bir veri kümesinin ortanca değeri bulmak için min-max-medyan bir yığın kullanmayı planlıyorsanız ama eğer değişen bir veri seti kullanıyorsanız mümkündür.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • kndx

    kndx

    11 Mart 2006
  • KoreanFrogMania님의 채널

    KoreanFrogMa

    18 Aralık 2011
  • Rachel Raum

    Rachel Raum

    10 EYLÜL 2007