9. SınıfBilişim Teknolojileri

Sıralama ve Arama Algoritmaları

Bilişim Teknolojileri · 9. Sınıf · Algoritma ve Akış Diyagramları

Konu Anlatımı

Sıralama ve Arama Algoritmaları

Bir dizideki on iki sayının karışık hâlde durması ile aynı sayıların artan düzende sıralı olması, o sayılar arasında arama yapılırken harcanan işi tamamen değiştirir. Sıralama algoritmaları veriyi istenen düzene getirir; arama algoritmaları ise sıralı ya da sırasız veride istenen değeri bulmaya çalışır. Bu konuda her iki işlem de küçük ölçekli örneklerle ele alınacak ve karşılaştırma sayısı üzerinden hangi yöntemin ne zaman daha verimli olduğu gösterilecektir.

Bu derste ne öğreneceğiz?

Bu konuda üç temel sıralama algoritmasının nasıl çalıştığını adım adım öğreneceğiz. Kabarcık sıralama, seçme sıralama ve eklemeli sıralama için küçük diziler üzerinde elle takip yapıp hangi elemanın ne zaman yer değiştirdiğini göstereceğiz. Ardından sıralı arama ile ikili aramanın farkını inceleyecek, arama için ön koşul olup olmadığını sorgulayacağız. Son olarak karşılaştırma sayısının veri boyutuna nasıl bağlandığını sayısal örneklerle tartışacağız.

Ön bilgi

Ön bilgi olarak dizi kavramı gerekir. Dizi, aynı veri tipinde olan değerlerin sıralı biçimde bellekte tutulduğu yapıdır ve her dizi elemanının bir sıra numarası vardır. Dizi elemanına erişmek, sıra numarasını bilmeyi gerektirir; sıra numarası bilinmiyorsa arama yapılmak zorundadır.

İkinci ön bilgi, döngü içinde koşul kullanımıdır. Sıralama algoritmaları iç içe iki döngü kurar: dış döngü kaçıncı turda olunduğunu, iç döngü hangi eleman çiftinin karşılaştırılacağını belirler. Dizi elemanlarını karşılaştırıp yer değiştirmek için üçüncü bir işlem gerekir; bu işlem geçici bir değişken kullanılarak yapılır.

Sıralama nedir, neden gerekir?

Sıralama, dizi elemanlarını bir ölçüte göre yeniden dizmektir. Ölçüt çoğunlukla sayısal büyüklük ya da alfabetik sıradır. Sıralamanın temel yararı arama hızını artırmasıdır: sıralı bir dizide bir değerin bulunup bulunmadığı ilk bakışta anlaşılabilir, sırasız dizide ise baştan sona taramak gerekir.

İkinci yararı veri okunabilirliğidir. Sıralı bir liste, insan gözünde çok daha hızlı taranır. Üçüncü yararı ise bazı işlemlerde verinin önceden hazırlanmış olmasıdır: en küçük, en büyük, ortanca değerler sıralı dizide bir bakışta bulunur. Bu yüzden sıralama yalnızca bir görsel düzen değil, sonraki adımları hızlandıran bir hazırlıktır.

Kabarcık sıralaması

Kabarcık sıralamada yan yana iki eleman karşılaştırılır; sıralama düzenine aykırı olan küçük eleman sola, büyük eleman sağa geçirilir. Bir tur içinde dizi baştan sona taranır ve bu sırada büyük elemanlar kademeli olarak sağa doğru yerleşir. Her turda en büyük eleman sonuna oturduğu için dış döngüde bir eleman eksik kalmış gibi davranılır.

En kötü durumda n elemanlı dizide dış döngü n eksi bir kez, iç döngü her turda bir azalarak çalışır. Karşılaştırma sayısı toplamı 1'den n eksi 1'e kadar olan sayıların toplamıdır. Dört elemanlı bir dizide bu toplam 4 + 3 + 2 + 1 = 10 karşılaştırmadır. Dizi baştan ters sırada ise bu en kötü durum gerçekleşir; zaten sıralı bir dizide ise ilk turda hiç yer değiştirme olmaz ve algoritma erkenden durdurulabilir.

Seçme sıralaması

Seçme sıralamasında her turda dizinin kalan bölümündeki en küçük eleman bulunur ve o eleman, bölümün başındaki konuma taşınır. Böylece elemanlar yavaş yavaş yerlerine oturur. Karşılaştırma sayısı kabarcık sıralamasıyla aynı toplama dayanır, ancak yer değiştirme sayısı çok daha azdır; çünkü bir turda en fazla bir yer değiştirme yapılır.

Sekiz elemanlı bir dizide en kötü durumdaki toplam karşılaştırma sayısı 8 + 7 + 6 + 5 + 4 + 3 + 2 + 1 = 36'dır. Bu toplam, dizi eleman sayısı arttıkça hızla büyür; bu yüzden seçme sıralaması az elemanlı dizilerde anlatımı kolay olduğu için öğretim amaçlı, çok elemanlı gerçek veride ise verimsiz olduğu için tercih edilmez.

Eklemeli sıralaması

Eklemeli sıralamada dizinin başındaki küçük bir bölümün sıralı olduğu varsayılır. Her adımda dizideki bir sonraki eleman alınır ve soldaki sıralı bölümde doğru yeri bulunana kadar geriye doğru kaydırılır. Bu kaydırma işlemi, yelkenli bir gemiyi limana yanaştırırken halatın geriye doğru çekilmesine benzer.

Beş elemana eklemeli sıralama uygulanırsa en kötü durumdaki karşılaştırma toplamı 1 + 2 + 3 + 4 = 10'dur. Veri çoktan sıralıysa her eleman ilk denemede yerine oturur ve toplam karşılaştırma sayısı eleman sayısına yakın kalır. Bu davranış, veri yavaş yavaş gelen bir listede eklemeli sıralamayı pratikte çok verimli kılar.

Sıralı arama ve sırasız arama

Sıralı arama, diziyi baştan sona tarayarak hedefi arar ve dizinin sıralı olup olmadığına bakmaz. Doğru çalışması için ön koşulu yoktur; fakat en kötü durumda hedef sonda ise bütün elemanlar karşılaştırılır. Dizi uzunluğu n ise en kötü durumdaki karşılaştırma sayısı doğrudan n olur.

Ortalama ise daha iyimserdir. Aranan değerin listenin herhangi bir yerinde eşit olasılıkla bulunduğu kabul edilirse, o n elemanlı dizide ortalama 1000 / 2 = 500 karşılaştırma yapılır. Bu ortalama, arama sonucunun her seferinde aynı yerde olmadığını gösterir; belli bir değeri sık arayan bir program için bu ortalama yanıltıcı olabilir.

İkili arama

İkili arama yalnızca sıralı dizilerde çalışır. Dizinin ortasındaki eleman hedefle karşılaştırılır; hedef daha küçükse sol yarı, daha büyükse sağ yarı alınır ve arama yalnızca bu yarı üzerinde sürdürülür. Her adımda arama alanı yarıya iner, bu yüzden çok sayıda eleman bulunsa bile sonuç hızla yaklaşır.

Üç elemanlı bir dizide arama en fazla iki adımda sonuçlanır: ilk adımda ortadaki eleman denenir, gerekirse kalan bölge en çok iki elemandır ve ikinci adımda onlardan biri denenir. Genel olarak n elemanlı dizide en fazla log2 n adım gerekir. Bin elemanlı bir dizide bu sayı on adımdır; oysa sıralı arama aynı işi bin adımda yapabilir.

Karşılaştırma sayısı ve büyüme hızı

Bir algoritmanın kaç adım çalıştığı, veri sayısı arttıkça nasıl büyüdüğüyle tanımlanır. Doğrusal büyüyen algoritmalarda adım sayısı veri sayısıyla, logaritmik büyüyenlerde ise çok daha yavaş artar. Bu ayrım, küçük listede fark edilmezken büyük listede belirleyici hâle gelir.

Somut olarak düşünülsün: yüz elemanlı bir dizide sıralı arama en fazla yüz karşılaştırma yaparken ikili arama en fazla yedi adımda sonuçlanır. On bin elemanlı bir dizide sıralı aramanın sınırı on bin olurken ikili aramanın sınırı on dört adımda kalır. Veri sayısı iki katına çıktığında doğrusal yöntemin yükü iki katına çıkarken logaritmik yöntemin yükü yalnızca bir adım büyür.

Kararlı sıralama ve ikinci ölçüt

İki elemanın değerleri eşitse, aralarındaki önceki sıralamanın korunup korunmadığına kararlı sıralama denir. Kararlı sıralama, ikinci bir ölçüt gerektiğinde önem kazanır: örneğin önce puana, puana eşit olanlarda ise numaraya göre sıralama yapılacaksa, kararlı bir yöntem numara sırasını korur.

Kararlı olmayan bir yöntemde aynı değerli iki kayıt yer değiştirebilir ve numara sırası bozulabilir. Bu nedenle kayıt sıralaması yapılan programlarda yöntemin kararlılığına bakılmalı, gerekiyorsa kararlı sıralama tercih edilmelidir.

Basit örnek

Dört elemanlı bir dizi düşünülsün: 5, 2, 8, 3. Kabarcık sıralamanın ilk turunda 5 ile 2 karşılaştırılır ve sıralama düzenine aykırı oldukları için yer değiştirirler; dizi 2, 5, 8, 3 olur. Aynı turda 5 ile 8 karşılaştırılır, sıralama düzenine uygun olduğu için yer değiştirme olmaz. 8 ile 3 karşılaştırılır ve yer değiştirirler; dizi 2, 5, 3, 8 olur.

İlk turda en büyük eleman olan 8 sona oturmuştur. İkinci turda 2, 5 ve 3 elemanlarına sıralama uygulanır ve dizi 2, 3, 5, 8 olur. Dizi ilk iki turdan sonra sıralı hâle gelir ve kalan turlarda yer değiştirme olmaz.

İleri örnek

Bir öğrenci listesi puana göre sıralanacaktır. Listede aynı puana sahip öğrenciler bulunduğundan ikinci bir ölçüt gerekir: öğrenci numarası. Bu durumda iki aşamalı bir çözüm kurulur. Önce liste puana göre sıralanır, sonra puana göre gruplar belirlenir ve her grup kendi içinde öğrenci numarasına göre yeniden sıralanır.

Bu çözümde ilk sıralamada kararlılık önemlidir; ikinci sıralama yalnızca aynı puanlıları etkiler. Alternatif olarak seçme sıralaması iki ölçütü tek adımda karşılaştırma fonksiyonuna verebilir. Hangi yolun seçileceği, listenin uzunluğuna ve kararlılık ihtiyacına göre belirlenir.

Adım adım çözülmüş örnek

Görev: 4, 11, 7, 2 dizisini seçme sıralamasıyla artan düzende sıralamak. Çözüm: Adım 1: Kalan bölüm 4, 11, 7, 2 olarak alınır ve en küçük eleman olan 2 bulunur. Adım 2: 2, ilk konuma taşınır; dizi 2, 4, 11, 7 olur. Adım 3: Kalan bölüm 4, 11, 7 taranır, en küçük eleman 4'tür ve yerinde kalır. Adım 4: Kalan bölüm 11, 7 taranır, en küçük eleman 7'dir ve üçüncü konuma taşınır; dizi 2, 4, 7, 11 olur.

Dört tur sonunda dizinin ilk üç konumu kesinleşmiştir ve son konumda kalan eleman otomatik olarak doğru yerde durur. Dört eleman için toplam karşılaştırma sayısı 4 + 3 + 2 + 1 = 10'dur; bu sayı elemanların başlangıç sırasından bağımsızdır.

Kavram karşılaştırma tablosu

AlgoritmaAna fikirKarşılaştırma sayısıÖn koşul
Kabarcık sıralamaYan yana elemanları karşılaştırıp yer değiştirirDoğrusal büyürSıralı olması gerekmez
Seçme sıralamaHer turda en küçük elemanı bulurDoğrusal büyürSıralı olması gerekmez
Eklemeli sıralamaYeni elemanı sıralı bölüme yerleştirirDoğrusal büyürSıralı olması gerekmez
Sıralı aramaDiziyi baştan sona tararDoğrusal büyürSıralı olması gerekmez
İkili aramaOrtadan başlayıp yarıya daraltırLogaritmik büyürDizi sıralı olmalıdır
Kararlı sıralamaEşit elemanların sırasını korurYönteme bağlıdırİkinci ölçüt varsa gereklidir
Birleştirmeli sıralamaDiziyi ikiye bölüp birleştirirLogaritmik büyürDizi sıralı olmalıdır

Sık Yapılan Hatalar

  • Hata: Karşılaştırma yapılmadan yer değiştirmek. Doğrusu: Önce karşılaştırılır, yalnızca sıralama düzenine aykırıysa yer değiştirilir.
  • Hata: Sırasız dizide ikili arama yapmak. Doğrusu: İkili aramanın ön koşulu dizinin sıralı olmasıdır.
  • Hata: Dış döngüyü eleman sayısı kadar tekrarlamak. Doğrusu: Son eleman kendiliğinden yerine oturduğu için dış döngü bir kez daha az çalışır.
  • Hata: İç döngü sınırını sabit tutmak. Doğrusu: Her turda sıralanan bölüm büyüdüğü için iç döngü sınırı bir azaltılır.
  • Hata: Arama sonucunu bulunamadı hâlinde sıfır sanmak. Doğrusu: Bulunamadı durumu ayrı bir değerle bildirilir.
  • Hata: Karşılaştırma sayısını sabit bir sayı sanmak. Doğrusu: Sayı veri uzunluğuyla birlikte değişir ve genellikle doğrusal büyür.
  • Hata: Yer değiştirme yaparken üçüncü bir geçici değer kullanmamak. Doğrusu: Bir elemanın üzerine yazılmaması için geçici bir değişken gerekir.
  • Hata: Aynı puanlı kayıtların sırasını önemsememek. Doğrusu: İkinci ölçüt varsa kararlı sıralama tercih edilmelidir.

Özet

Sıralama algoritmaları dizi elemanlarını istenen düzene getirir. Kabarcık sıralama yan yana elemanları karşılaştırıp yer değiştirir; seçme sıralama her turda en küçük elemanı bulup yerine taşır; eklemeli sıralama ise her yeni elemanı soldaki sıralı bölüme yerleştirir. Üçünün de karşılaştırma sayısı veri sayısıyla doğrusal büyür. Sıralı arama diziyi baştan sona tarar ve sıralı olma koşulu taşımaz. İkili arama ise ortadan başlayıp arama alanını her adımda yarıya indirir; bu yüzden sıralı dizi koşuluna bağlıdır. Eşit değerli elemanların sırasını koruyan yöntemler kararlı sıralama olarak adlandırılır.

Kendini dene

Kendin dene bölümünde kendi seçtiğin beş elemanlık bir diziyle çalış. Önce kabarcık sıralamanın her turunu kâğıda yazarak dizinin hâlini çiz, sonra aynı diziyi seçme sıralamasıyla sırala ve iki yöntemin yer değiştirme sayılarını karşılaştır. Son olarak diziyi sıraladıktan sonra ikili aramayla bulunması gereken bir değeri ara ve adım sayısını yaz. Puanlama notu: her turun hangi eleman çiftinin karşılaştırıldığını yazmayan çalışma eksik sayılır.

Sıralama ve Arama Algoritmaları — Sık Sorulan Sorular

Bu derste ne öğreneceğiz?

Bu konuda üç temel sıralama algoritmasının nasıl çalıştığını adım adım öğreneceğiz. Kabarcık sıralama, seçme sıralama ve eklemeli sıralama için küçük diziler üzerinde elle takip yapıp hangi elemanın ne zaman yer değiştirdiğini göstereceğiz. Ardından sıralı arama ile ikili aramanın farkını inceleyecek, arama için ön…

Sıralama nedir, neden gerekir?

Sıralama, dizi elemanlarını bir ölçüte göre yeniden dizmektir. Ölçüt çoğunlukla sayısal büyüklük ya da alfabetik sıradır. Sıralamanın temel yararı arama hızını artırmasıdır: sıralı bir dizide bir değerin bulunup bulunmadığı ilk bakışta anlaşılabilir, sırasız dizide ise baştan sona taramak gerekir.

Sıralama ve Arama Algoritmaları nedir?

Bir dizideki on iki sayının karışık hâlde durması ile aynı sayıların artan düzende sıralı olması, o sayılar arasında arama yapılırken harcanan işi tamamen değiştirir. Sıralama algoritmaları veriyi istenen düzene getirir; arama algoritmaları ise sıralı ya da sırasız veride istenen değeri bulmaya çalışır. Bu konuda her…

Sıralama ve Arama Algoritmaları konusunda ne öğrenilir?

Sıralama algoritması veriyi bir ölçüte göre yeniden dizer, arama algoritması hedefi bulur.

Sıralama ve Arama Algoritmaları Kazanımları

Örnek Sorular ve Çözümleri

Örnek Soru 1 kolay

Bir sıralama algoritmasının temel görevi nedir?

  1. A) Dizi elemanlarını artan ya da azalan düzende yan yana getirmek
  2. B) Dizideki sayıların toplamını hesaplamak
  3. C) Dizi elemanlarını rastgele sırayla tekrar etmek
  4. D) Dizideki en büyük elemanı silmek
Cevabı göster

Doğru cevap: A) Dizi elemanlarını artan ya da azalan düzende yan yana getirmek

Sıralama algoritması, dizi elemanlarını artan ya da azalan düzende yan yana getirmek görevini yapar. Böylece arama hızlanır ve veri okunabilirliği artar.

Örnek Soru 2 orta

Dört elemanlı bir dizide en kötü durumdaki karşılaştırma sayısı hangi toplama karşılık gelir?

  1. A) On
  2. B) Sekiz
  3. C) On iki
  4. D) Yedi
Cevabı göster

Doğru cevap: A) On

Toplam, 1'den 3'e kadar olan sayıların toplamıdır. Bu değer 4 + 3 + 2 + 1 = 10 olarak bulunur, yani sonuç ondur.

Örnek Soru 3 zor

Sıralı arama ile ikili arama arasındaki temel fark nedir?

  1. A) İkili arama her adımda yarıya iner, sıralı arama baştan sona tarar
  2. B) Sıralı arama yalnızca metinlerde, ikili arama sayılarda çalışır
  3. C) İkili arama sırasız dizide, sıralı arama sıralı dizide çalışır
  4. D) Sıralı arama daha az bellek kullanır, ikili arama daha çok
Cevabı göster

Doğru cevap: C) İkili arama sırasız dizide, sıralı arama sıralı dizide çalışır

İkili arama, hedefin bulunabileceği yarıya daralarak ilerler; sıralı arama ise elemanları baştan sona sırayla tarar. Fark, arama alanının daraltılıp daraltılmadığıdır.

Sıradaki adım

Konu anlatımları hesapsız okunur. Quiz, slayt ve deneme için hesap gerekir.

DersTeders ile devam et

Bilişim Teknolojileri için çalışma yolu

  1. OkuKonu anlatımını bu sayfada bitir.
  2. Soru çözÖrnekleri çöz, cevabı açıklamayla karşılaştır.
  3. Quiz ile pekiştirHesapla kendini ölç.

Slaytla adım adım öğren · Tüm dersler · Ana sayfa

Hesap açTüm dersleri keşfet

Konu anlatımları hesapsız okunur; quiz, slayt ve deneme için hesap gerekir.

Bu sayfa Sıralama ve Arama Algoritmaları konusunun anlatımını, kazanımlarını ve örnek sorularını içerir. Konuyla ilgili tüm sorular için testi çöz, diğer konular için DersTeders ana sayfasına geçebilirsin.

Bu konunun öğretmen materyallerini (ders planı, çalışma kâğıdı, çözümlü soru bankası, rubrik) yazdırabilirsin: Yazıcı çıktısı modülünü aç