Kabuk sıralaması - Vikipedi
İçeriğe atla
Ana menü
Gezinti
  • Anasayfa
  • Hakkımızda
  • İçindekiler
  • Rastgele madde
  • Seçkin içerik
  • Yakınımdakiler
Katılım
  • Deneme tahtası
  • Köy çeşmesi
  • Son değişiklikler
  • Dosya yükle
  • Topluluk portalı
  • Wikimedia dükkânı
  • Yardım
  • Özel sayfalar
Vikipedi Özgür Ansiklopedi
Ara
  • Bağış yapın
  • Hesap oluştur
  • Oturum aç
  • Bağış yapın
  • Hesap oluştur
  • Oturum aç

İçindekiler

  • Giriş
  • 1 Algoritmanın Geçmişi
  • 2 Uygulamalar
    • 2.1 C/C++ dilinde yazılmış Shell sıralaması
    • 2.2 Java dilinde yazılmış Shell sıralaması
    • 2.3 Python dilinde yazılmış Shell sıralaması
  • 3 Dış bağlantılar

Kabuk sıralaması

  • Azərbaycanca
  • Български
  • Čeština
  • Dansk
  • Deutsch
  • English
  • Español
  • Eesti
  • فارسی
  • Français
  • עברית
  • Հայերեն
  • Íslenska
  • İtaliano
  • 日本語
  • 한국어
  • Lietuvių
  • മലയാളം
  • Nederlands
  • Norsk bokmål
  • Polski
  • Português
  • Русский
  • Slovenčina
  • Slovenščina
  • Српски / srpski
  • Svenska
  • ไทย
  • Українська
  • Oʻzbekcha / ўзбекча
  • 中文
Bağlantıları değiştir
  • Madde
  • Tartışma
  • Oku
  • Değiştir
  • Kaynağı değiştir
  • Geçmişi gör
Araçlar
Eylemler
  • Oku
  • Değiştir
  • Kaynağı değiştir
  • Geçmişi gör
Genel
  • Sayfaya bağlantılar
  • İlgili değişiklikler
  • Kalıcı bağlantı
  • Sayfa bilgisi
  • Bu sayfayı kaynak göster
  • Kısaltılmış URL'yi al
  • Karekodu indir
Yazdır/dışa aktar
  • Bir kitap oluştur
  • PDF olarak indir
  • Basılmaya uygun görünüm
Diğer projelerde
  • Vikiveri ögesi
Görünüm
Vikipedi, özgür ansiklopedi
(Kabuk Sıralaması sayfasından yönlendirildi)
Kabuk sıralaması
Kabuk sıralama algoritması
SınıfSıralama algoritması
Veri yapısıDizi
Zaman karmaşıklığıO(n log² n), aralıkların dizilimine göre değişir
En iyiGenellikle değil
Alan karmaşıklığıO(n) toplam, O(1) yardımcı
Kabuk sıralaması algoritma renk çubukları

Shell sıralaması (İngilizce: Shell sort), bilgisayar bilimlerinde kullanılan bir sıralama algoritmasıdır. Eklemeli sıralama algoritmasının aşağıdaki iki gözlem kullanılarak genelleştirilmiş biçimidir:

  • Eklemeli sıralama, sıralanacak dizi zaten büyük oranda sıralıysa daha verimli çalışır.
  • Eklemeli sıralama, dizideki öğeleri her adımda yalnızca bir sonraki konuma aktardığından verimsizdir.

Algoritmanın Geçmişi

[değiştir | kaynağı değiştir]

Shell sıralaması algoritmasının adı algoritmayı bulan kişi olan Donald Shell'den gelmektedir. Donald Shell algoritmayı 1959 yılında yayınlamıştır.

Uygulamalar

[değiştir | kaynağı değiştir]

C/C++ dilinde yazılmış Shell sıralaması

[değiştir | kaynağı değiştir]

Aşağıda C/C++ dilinde yazılmış, bir sayı dizisini Shell sıralaması algoritmasını kullanarak sıralayan bir program verilmiştir.

/*

     SHELL SORT
     Written by erengencturk.net
*/

#include <stdio.h>

#define ELEMENTS 6

void shellsort(int A[],int max)
{
     int stop,swap,limit,temp,k;
   int x=(int)(max/2);
   while(x>0)
   {
        stop=0;
      limit=max-x;
      while(stop==0)
      {
           swap=0;
         for(k=0;k<limit;k++)
         {
              if(A[k]>A[k+x])
            {
                 temp=A[k];
               A[k]=A[k+x];
               A[k+x]=temp;
               swap=k;
            }
         }
         limit=swap-x;
         if(swap==0)
              stop=1;
      }
      x=(int)(x/2);
   }
}

int main()
{
  int i;
  int X[ELEMENTS]={5,2,4,6,1,3};
  printf("Unsorted Array:\n");
  for(i=0;i<ELEMENTS;i++)
            printf("%d ",X[i]);

  shellsort(X,ELEMENTS);
  printf("\nSORTED ARRAY\n");
  for(i=0;i<ELEMENTS;i++)
            printf("%d ",X[i]);

}

Java dilinde yazılmış Shell sıralaması

[değiştir | kaynağı değiştir]
public static void shellSort(int[] a) {
    for (int i = a.length / 2; i > 0;
          i = (i == 2 ? 1 : (int) Math.round(i / 2.2))) {
        for (int i2 = i; i2 < a.length; i2++) {
            int temp = a[i];
            for (int j = i2; j >= i && a[j - i] > temp; j -= i){
                a[j] = a[j - i];
                a[j - i] = temp;
            }
        }
    }
}

Python dilinde yazılmış Shell sıralaması

[değiştir | kaynağı değiştir]
  def shellsort(a):
      def increment_generator(a):
          h = len(a)
          while h != 1:
              if h == 2:
                  h = 1
              else: 
                  h = 5*h//11
              yield h

      for increment in increment_generator(a):
          for i in xrange(increment, len(a)):
              for j in xrange(i, increment-1, -increment):
                  if a[j - increment] < a[j]:
                      break
                  a[j], a[j - increment] = a[j - increment], a[j]
      return a

Dış bağlantılar

[değiştir | kaynağı değiştir]
  • "Detailed analysis of Shell sort". 16 Ocak 2000 tarihinde kaynağından arşivlendi. 
  • Robert Sedgewick. "Analysis of Shellsort and Related Algorithms". 7 Haziran 1997 tarihinde kaynağından arşivlendi. 
  • "Shell Sort Java Applet". 14 Mayıs 2007 tarihinde kaynağından arşivlendi. 
  • "Best known gap sequence". 20 Şubat 2007 tarihinde kaynağından arşivlendi. 
  • "A graphical demonstration and discussion of shell sort". 3 Nisan 2008 tarihinde kaynağından arşivlendi. 
"https://tr.wikipedia.org/w/index.php?title=Kabuk_sıralaması&oldid=35961588" sayfasından alınmıştır
Kategori:
  • Sıralama algoritmaları
  • Sayfa en son 21.29, 1 Eylül 2025 tarihinde değiştirildi.
  • Metin Creative Commons Atıf-AynıLisanslaPaylaş Lisansı altındadır ve ek koşullar uygulanabilir. Bu siteyi kullanarak Kullanım Şartlarını ve Gizlilik Politikasını kabul etmiş olursunuz.
    Vikipedi® (ve Wikipedia®) kâr amacı gütmeyen kuruluş olan Wikimedia Foundation, Inc. tescilli markasıdır.
  • Gizlilik politikası
  • Vikipedi hakkında
  • Sorumluluk reddi
  • Davranış Kuralları
  • Geliştiriciler
  • İstatistikler
  • Çerez politikası
  • Mobil görünüm
  • Wikimedia Foundation
  • Powered by MediaWiki
Kabuk sıralaması
Konu ekle