• Forum vBulletin altyapısından Xenforo altyapısına geçirildi, bu sebeple eski şifreleriniz ile foruma giriş yapamayacaksınız, parolamı unuttum adımından mailiniz ile şifre sıfırlayarak giriş yapabilirsiniz.

    Üyeliklerinde geçerli bir mail adresi olmadığı için sıfırlama yapamayacak kullanıcılar forum kullanıcı adlarını ve yeni şifrelerini yazarak info@maxigame.org adresine şifre sıfırlamak istediklerine dair bir mail göndersinler şifrelerini sıfırlayıp mail adreslerini güncelleyeceğiz. Şifreniz sıfırlandıktan sonra foruma giriş yapıp tekrar istediğiniz gibi değiştirebilirsiniz.

Kabuk Sıralaması | MaxiGame

  • Konuyu başlatan Konuyu başlatan WeWereRock
  • Başlangıç tarihi Başlangıç tarihi

WeWereRock

Kabuk Sıralaması

Karışık durumdaki listede, en sondaki elemanıen başa getirmek zaman kaybıdır. Bu sebeple programcılar kabuk sıralaması(shell sort) algoritmasınıgeliştirmişlerdir. “Böl ve yönet” mantığıile tüm dizinin sıralanmasıyerine, küçük parçalar halinde dizi sıralanır. Küçük listeler sıralandıktan sonra, listeler birleştirilir.

Aslında kabuk sıralaması balon ve ekleme sıralamasını hızlandırmak için geliştirilmiştir. Yani farklıbir sıralama algoritmasıdeğildir.
1. Büyük liste küçük listelere bölünür.
2. Küçük liste balon veya ekleme sıralamasıile sıralanır.
3. Resim deki örnekte 15 ve 29 rakamısıralanmasına gerek yoktur. 16 ve 4 rakamısıralanır, 78 ise işleme girmez.
4. 3. adımda sadece 4 ve 16’nın yeri değişir, tekrar dizi küçük listelere bölünür.
5. Dizide 15, 78 ve 16 sıralanır, 4 ve 29 rakamlarının sıralanmasına gerek yoktur.
6. Liste sıralamasıtamamlanana kadar 2 ve 4. adımlar tekrarlanır


1t2b20.jpg


Kabuk sıralamasısahte kodlarıaşağıdaki gibidir

PHP:
Başla

     Sayısal DiziVeriler(5)
     Sayısali, Geçici, Dur, Geç, X, Sınır
     Yaz;"Sıralanacak veriler:"
     Döngü i = 1, 5, 1
     Veriler(i) = Rasgele(100)
     Yaz; Veriler(i)
     Döngü Bitti
     X = tamsayı(5 / 2)
     İken (X > 0)
     Dur = 0
     Sınır = 5 – X
     İken (Dur = 0)
     Geç = 0
     Döngü i = 1, Sınır, 1
     Eğer (Veriler(i) > Veriler(i + X)) İse
     Geçici = Veriler(i)
     Veriler(i) = Veriler(i + X)
     Veriler(i + X) = Geçici
     Geç = 1
     Eğer Bitti
     Döngü Bitti
     Sınır = Geç – X
     Eğer Geç = 0 İse Dur = 1
     İken Bitti
     X = tamsayı(X / 2)
     İken Bitti
     Yaz; "Sıralı liste:"
     Döngü i = 1, 5, 1
     Yaz; Veriler(i)
     Döngü Bitti
Bitir
 
Geri
Üst