• Sonuç bulunamadı

Veri Yapıları. for(i=1;i<n;i++) { ekle=d[i]; for (k=i 1; k>=0 && ekle<=d[k] ;k ) D[k+1]=D[k]; /* Geriye kaydırılıyor*/

N/A
N/A
Protected

Academic year: 2022

Share "Veri Yapıları. for(i=1;i<n;i++) { ekle=d[i]; for (k=i 1; k>=0 && ekle<=d[k] ;k ) D[k+1]=D[k]; /* Geriye kaydırılıyor*/"

Copied!
10
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

Veri Yapıları

Program çalışma hızı;

Belirlenen bir problemin çözümü için tasarlanan program kodunun görevini yerine getirmesi için gerekli zaman bilgisini veren bir

ifadededir.

Bellek Gereksinimi; Programın yürütülmesi sırasında, programın kodu ve kodun yürütülmesi esnasında kullanılan verilerin işgal ettiği bellek alanıdır.

Yürütme Zamanı; Bir programın veya algoritmanın işlevini yerine getirebilmesi için temel kabul edilen işlemlerden kaç adet

yürütülmesi gerektiğini veren bir bağıntıdır. Örneğin n elemanlı bir

küme için yürütme zamanı T(n) şeklinde gösterilir.

(2)

Veri Yapıları

Sıralama Algoritmaları;

Sayısal ortamdaki bilgilerin veya verilerin belirli bir anahtar sözcüğe göre belirli bir anlamda sıralı erişilmesini sağlayan düzenlemedir.

Temel sıralama Algoritmaları;

1. Araya sokma(Insertion) sıralaması 2. Seçmeli (Selection) sıralaması

3. Kabarcık (Bubble) Sıralaması

5. Birleşmeli (Merge) Sıralama

6. Kümeleme (Heap) Sıralaması

7. Hızlı (Quick) Sıralama

(3)

Veri Yapıları

Araya Sokma (Insertion) Sıralaması;

Araya sokma algoritması, sıralanacak dizinin ilk elemanını yerinde bırakarak ondan sonraki elemanları, sırayla alarak sıraya uygun yere sokar.

/*Araya sokma sıralamasıyla bir dizinin sıralanması*/

arayaSokma(int D[ ], int n) {

int i, k, ekle;

for(i=1;i<n;i++) {

ekle=D[i];

for (k=i−1; k>=0 && ekle<=D[k] ;k− −)

D[k+1]=D[k]; /* Geriye kaydırılıyor*/

D[k+1]=ekle; /*uygun yer boşaltıldı eklendi*/

} }

(4)

Veri Yapıları

Seçmeli (Selection) Sıralama;

Bu algoritmada dizinin bir ucundan başlanılır, (bu şalangış dizinin başı veya sonu olabilir) Örneğin küçükten büyüğe sıralama için, önce ilk eleman alınır ve daha sonra küme içerisindeki en küçük eleman aranır, bulunduğu zaman ilk elemanla yer değiştirilir, daha sonra ikinci eleman için de aynı işlemler yapılarak dizinin son elemanına kadar tekrarlanarak dizi sıralanmış olur.

/*Seçmeli Sıralama algoritması*/

secmeliSırala(int D[ ], int n) {

int i, index, j, enkucuk;

for(i=0;i<(n-1);i++) /*Dizinin başından başlanıyor*/

{

enkucuk=D[n-1]; /* son eleman en küçük kabul ediliyor*/

index=n-1;

for (j=i;j<(n-1);j++) /*daha küçüğü varmı diye aranıyor*/

if(D[j]<enkucuk) {

enkucuk=d[j];

index=j;

}

D[index]=D[i]; /* daha küçüğü varsa yer değiştiriyor*/

D[i]=enkucuk;

} }

(5)

Veri Yapıları

Kabarcık (Bubble Sort) Sıralaması;

Sıralanacak elemanlar üzerinde bir yünden diğer yöne doğru ilerlerken komşu iki elemanın yer değiştirme ilkesine dayanır.

/*kabarcık sıralama fonksiyonu*/

kabarcik(int D[ ], int n) {

int gecici, k, hareket;

for(hareket=0;i<(n-1);hareket++) {

for(k=0; k<(n-1-hareket);k++)

if(D[k]>D[k+1]); /* komşular karşılaştırılıyor*/

{

gecici=D[k]; /*yer değiştirme kodu*/

D[k]=D[k+1];

D[k+1]=gecici;

} }

}

(6)

Veri Yapıları

Birleşmeli (Merge) Sıralama;

Böl ve yönet yaklaşımına dayanır ve dolayısı ile rekürsif tasarlanması gereklidir. Sıralanması istenen küme elemanları, önce , iki alt kümeye

parçalanır, ve fonksiyon kendisini sol alt küme ve sağ alt küme için iki kez çağırır. Alt kümelerdeki eleman sayısı bir tane olana kadar devam edilir.

/*birleşmeli sıralama fonksiyonu*/

birlesmeli (D[ ], sol,sag) {

if(sol<sag) {

k=(sol+sag)/2;

birlesmeli(D,sol,k);

birlesmeli(D,k+1,sag);

birlestir(D,sol,k,sag);

} }

(7)

Veri Yapıları

/*birleştir alt fonksiyonu*/

birlestir(D,sol,k,sag) {

int i,j;

int M[ ];

for(i=sol,j=k+1;i<=k && j<=sag;) {

if(D[i]>D[j]);

{

M[]=D[i];

i++;

} else {

M[]=D[j];

j++;

} }

A[]=M[];

}

(8)

Veri Yapıları

Kümeleme (Heap) Sıralama;

Sıralanacak elemanlar ile önce bir kümeleme ağacı oluşturulur, daha sonra başka dizi gerektirmeksizin sırasız elemanların bulunduğu dizi üzerinde çalışılır.

/*kümeleme sıralama fonksiyonu*/

kumesiralamasi(A) {

kumeleme_agacini_olustur(A);

for(k=eleman_sayisi(A)-1;k>1;k--) {

kok=A[0];

kok ileA[k]’yı yer değiştir;

agacı_kumele(A,1);

} }

(9)

Veri Yapıları

Hızlı (Quick) Sıralama;

Böl ve yönet yaklaşımına dayanır ve dizi belirli bir sınır değerine göre ikialt diziye ayrılır. İkiye ayırma işlemi, bu sınır sayısından küçük elemanlar bir tarafa, büyük olan elemanlar diğer tarafa toparlanarak yapılır.

/*hızlı sıralama fonksiyonu*/

hizli_siralama(A,sol,sag) {

if(sol<sag) {

A dizisini ikiye böl ve sınır değerini q’ya ata;

hizli_siralama(A,sol,q);

hizli_siralama(A,k+1,sag);

} }

(10)

Veri Yapıları

/*hızlı sıralama fonksiyonu*/

hizli_sirala(int dizi[], int sol, int sag) {

register int k,j;

int ortadaki, gecici;

/*diziyi ikiye parçalama*/

k=sol;

j=sag;

ortadaki=dizi[(sol+sag)/2)]; /*sınır değeri*/

do {

while(dizi[k]<ortadaki && k<sag) k++;

while(ortadaki<dizi[j] && j>sol) j--;

if(k<=j){

gecici=dizi[k];

dizi[k]=dizi[j];

dizi[j]=gecici;

k++;j--;

}

}while(k<=j); /*parçalama bitti*/

if (sol<j) hizli_sirala(dizi,sol,j);

if (k<sag) hizli_sirala(dizi,k,sag);

}

Referanslar

Benzer Belgeler

ġimdi, Sayın Bakanımız “yerel yönetimlerin gelirlerini düzenleyen yasa Belediye Gelirleri Yasasıdır ve biz bu konuda çalıĢma yapıyoruz, yürütüyoruz, onu ayrıca

Sayın Bakan, Plan ve Bütçe Komisyonunun çok değerli üyeleri; Adalet Bakanlığı ve yüksek yargı organlarının bütçelerini görüĢürken, tabiî ki, yargının sorunları

BAYINDIRLIK VE ĠSKÂN BAKANI FARUK NAFIZ ÖZAK (Devamla) – Tamam, o konuda o zaman size bilgiyi Afet ĠĢleri Genel Müdürlüğümüzle ilgili bilgi….. Sanırım, hak

DEVLET BAKANI VE BAġBAKAN YARDIMCISI NAZIM EKREN (Ġstanbul) – Hayır, burada Ģöyle bakıyoruz Sayın Hamzaçebi: Özel tasarrufta azaldı, kamu tasarrufunda arttı…. MEHMET

MEHMET AKĠF HAMZAÇEBĠ (Trabzon) – Ġki cetvelle ilgili çok kısa görüĢümü ifade etmek istiyorum. b) cetveline baktığımızda halen yürürlükte olmayan ek

ġu tabloya göre 546 trilyon lira 2005 yılı yatırım ödeneği olacaktır eğer herhangi bir kesinti olmazsa ve bu Ģekilde tahakkuk öderse, bu rakama göre 800

Değerli arkadaĢlar, özelleĢtirme sonucu Telekom’u Oger Telekomünikasyon isminde bir Ģirket aldı, daha doğrusu yüzde 55 oranındaki hissesini devraldı ve daha

2 Sadece işçi sosyal güvenlik primlerini alırsak, 2000 yılında bunun gayri safî yurtiçi hâsılaya oranı Türkiye’de yüzde 2,2; OECD ortalaması yüzde 3 ve Avrupa