• Hakkımızda
  • Bize Katıl
  • Sizden Gelenler
  • İletişim
Yazılım Karavanı | Bilişim - Teknoloji - Blog
  • Anasayfa
  • Genel
  • Programlama
    • Ruby
    • Flutter
    • Android
    • Java
    • MySQL
    • Oracle SQL
  • Yaşamdan
  • Algoritmalar
  • Yapay Zeka
  • Topluluklar
No Result
View All Result
  • Anasayfa
  • Genel
  • Programlama
    • Ruby
    • Flutter
    • Android
    • Java
    • MySQL
    • Oracle SQL
  • Yaşamdan
  • Algoritmalar
  • Yapay Zeka
  • Topluluklar
No Result
View All Result
Yazılım Karavanı | Bilişim - Teknoloji - Blog
No Result
View All Result
Home Algoritmalar

Araya Sokma (Insertion Sort) Algoritması

Ali Murat Çevik by Ali Murat Çevik
Mayıs 24, 2018
in Algoritmalar
3 min read
0
Araya Sokma (Insertion Sort) Algoritması
WhatsApp'ta PaylaşTwitter'da PaylaşLinkedIn'de PaylaşTelegram'da Paylaş

Insertion sort algoritması temel sıralama algoritmalarından bir tanesidir. Algoritmanın mantığına göre elimizdeki A dizisinin elemanları arasında sıralama yapılmak istenildiğinde A[1] indisinden başlanarak önceki elemanlar ile karşılaştırma yapılır. Eğer A[1] indisli eleman kendinden önceki elemanlardan küçük ise yer değiştirme işlemi gerçekleşir ve dizinin başına A[1] elemanı geçer, aksi takdirde yer değiştirme işlemi gerçekleşmez ve bir sonraki elemana bakılır.

Araya sokma algoritması, sıralı bir diziye eleman ekleme işlemi için uygun bir algoritmadır. Bunun için daha çok bağlı liste (linked list) kullanılır. Eleman eklemek için karmaşıklık O(n) iken, sıralama yapmak için karmaşıklığımız O(n^2) olur.

Bir örnek ile algoritmanın çalışma mantığını gösterelim:

A dizisinin elemanları = [3, 4, 1, 8, 2, 21] şeklinde verilmiş olsun.

  1.  Adım: A[1] elemanı = 4′ tür. Bir önceki eleman olan 3 ile karşılaştırıldığı zaman 3 < 4 tür ve ilk iki eleman küçükten büyüğe sıralı olduğu için bir işlem yapmamız gerekmez. 
  2.  Adım: Dizinin yeni hali A [] = [3, 4, 1, 8, 2, 21] şeklindedir. A[2] = 1 dir ve 1 den önceki elemanlar 4′ ten küçüktür. O zaman 1 elamanı dizinin başına gelir ve 4 ve 3 elemanları birer sağa kaydırılır. Swap değil kaydırma işlemi uygulanır.
  3. Adım: Dizinin güncel hali A[] = [1, 3, 4, 8, 2, 21] şekline gelir. Devam edelim,A [3] = 8 ‘dir.  8′ in solundaki elemanlar 8’ den küçük olduğu için kaydırma işlemi gerçekleştirilmez. İndisinimizi +1 artırarak bir sonraki elemana geçelim.
  4.  Adım: A[4] = 2’dir. 2 < 8, 2 < 4, 2 < 3 olduğu için 2 elemanı dizinin A[1] indisine gelir ve diğer elemanlar birer tane sağa kaydırılır. Böylelikle dizinin güncel hali A[]= [1, 2, 3, 4, 8, 21] şeklini almış olur.
  5. Adım: A[5] = 21’dir. 21 elemanı kendisinden önceki bütün elemanlardan büyük olduğu için herhangi bir indise sokma işlemi veya diğerleri arasında bir kaydırma işlemi gerçekleştirilmez. Böylelikle dizimiz küçükten büyüğe doğru sıralanmış olur. 
  • Algoritmaya ait kaba kod:
arayaSokma(int A[], int N){
  int i, k , ekle;
  for(i=1; i<N; i++){
    ekle = A[i];
    
    for( k=i-1; k>=0 && ekle<=A; k--)
      A[k+1] = A[k];
    A[k+1] ekle;
  }
}  

C Kodu:

#include <stdio.h>
//global 
int A[100];
int key;
void insertionSort(int A[], int elemanSayisi){
  int i,j;
  for (i=0;i<elemanSayisi;i++){
    key = A[i];
    j = i - 1 ; //Key değerinin solu sıralı olacaktır.

    //kaydırma işlemi başlıyor
    while (key < A[j] && j >=0) {
    A[j+1] = A[j]; //birer tane kaydı
    j--;
    }
  A[j+1] = key; //araya sokma işlemi
  }
}

int main(){
  int i, adet;
  printf("\nDizi kac elemanli?\n");
  scanf("%d", &adet);
	
  for(i=0; i<adet; i++){
    printf("\n%d. sayiyi giriniz: ",i+1);
    scanf("%d", &A[i]);
  }

  insertionSort(A,adet);
	
  for(i=0; i<adet; i++){
    printf(" %d ", A[i]);
  }
	
  return 0;	
}
alim cevik

Tags: AlgoritmalarAli Murat ÇEVİKInsertion Sort
SendTweet5Share1Share
Önceki Gönderi

Hızlı Sıralama (Quick Sort) Algoritması

Sonraki Gönderi

Android Manifest Dosyası Nedir ?

İlgili Yazılar

B Ağaçları (B Trees)

B Ağaçları (B Trees)

by İrem Türkü ÇINAR
Ağustos 24, 2020
0

Merhaba Yazılım Karavanı Ailesi :) Bir önceki yazımda ağaç veri yapısından bahsetmiştim. Şimdi sizlere B Ağaçlarından bahsedecek ve örnekler çözeceğim....

Ağaç Veri Yapısı

Ağaç Veri Yapısı

by İrem Türkü ÇINAR
Ağustos 24, 2020
0

Merhaba arkadaşlar :) Bu yazımda sizlere ağaç veri yapısından bahsedeceğim. Benim üniversitede aldığım dersler arasında pek çok yerde karşıma çıkmış...

Hızlı Sıralama (Quick Sort) Algoritması

Hızlı Sıralama (Quick Sort) Algoritması

by Ali Murat Çevik
Mayıs 24, 2018
0

Hızlı sıralama algoritması, sıralama algoritmalarında karşımıza sık sık çıkan bir algoritmadır. Böl ve yönet (divide and conquer) felsefesiyle çalışır. İlgili...

İkili Arama (Binary Search) Algoritması

İkili Arama (Binary Search) Algoritması

by Ali Murat Çevik
Mayıs 24, 2018
0

İkili arama, arama algoritmaların temelini oluşturmaktadır. Algoritmalar konusunda sık sık karşımıza çıkmakta olan ikili arama algoritmasını inceleyelim. Örneğin bir sayı...

Bogo (Permutation) Sort Algoritması

Bogo (Permutation) Sort Algoritması

by Ali Murat Çevik
Mayıs 19, 2018
0

Bogo Sort algoritması Permütasyon Sıralaması veya Saçma Sıralama olarak da adlandırılır. Verilen sayı dizisinin rastgele karıştırılması ile olası bütün ihtimalleri...

Next Post
Activity- Intent Kavramları #Java

Android Manifest Dosyası Nedir ?

PL/SQL Ders 1-Oracle 11gR2 & SQL Developer Kurulumu

PL/SQL Ders 2- SQL Nedir?

Bir cevap yazın Cevabı iptal et

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

  • Popüler
  • Yorumlar
  • En Yeniler
Sıfırdan Yolo v4 Tiny Özelleşmiş Nesne Tespiti (Custom Object Detection)

Sıfırdan Yolo v4 Tiny Özelleşmiş Nesne Tespiti (Custom Object Detection)

Temmuz 26, 2021
B Ağaçları (B Trees)

B Ağaçları (B Trees)

Ağustos 24, 2020
Splash Screen Yapımı #Flutter

Splash Screen Yapımı #Flutter

Mayıs 25, 2020
Gini Index Kullanılarak Karar Ağacının (Decision Tree)  Oluşturulması

Gini Index Kullanılarak Karar Ağacının (Decision Tree) Oluşturulması

Ağustos 20, 2020
2020 ‘nin En Güncel ve Tehlikeli Zararlı Yazılımları

2020 ‘nin En Güncel ve Tehlikeli Zararlı Yazılımları

6
Magento 2 Detaylı Kurulum & Hatalar

Magento 2 Detaylı Kurulum & Hatalar

5
Flutter’da TFLite Kullanımı

Flutter’da TFLite Kullanımı

4
Bubble Sort (Kabarcık Sıralama) Algoritması

Bubble Sort (Kabarcık Sıralama) Algoritması

2
VGG-19 Transfer Learning ile Görüntü Sınıflandırma

VGG-19 Transfer Learning ile Görüntü Sınıflandırma

Eylül 12, 2022
SOC Sistemler Üzerine Faydalı Notlar

SOC Sistemler Üzerine Faydalı Notlar

Eylül 2, 2022
Python NLTK Kütüphanesi İle Basit Bir Chatbot Yapımı

Python NLTK Kütüphanesi İle Basit Bir Chatbot Yapımı

Ağustos 23, 2022
Makine Öğrenimi Nedir?

Makine Öğrenimi Nedir?

Ağustos 4, 2022

Reklam

Yazılım Karavanı | Bilişim – Teknoloji – Blog

Bilgi Teknolojileri alanına meraklı herkesin buluşma noktası!

No Result
View All Result
  • Anasayfa
  • Genel
  • Programlama
    • Ruby
    • Flutter
    • Android
    • Java
    • MySQL
    • Oracle SQL
  • Yaşamdan
  • Algoritmalar
  • Yapay Zeka
  • Topluluklar

© 2020 Yazılım Karavanı Kaynak gösterilmesini rica ederiz.