01
Eki
2026

Veri yapıları ve algoritmalar II dersi – derste yazılan kodlar

1 Ekim Perşembe

İşaretçi (pointer), yâni adres bilgisi kullanarak kendisine gönderilen değişkenin değerini değiştiren fonksiyon

#include <iostream>
using namespace std;

void degistir(int *a){
    *a = 32;
}

int main()
{
    int sayi = 5;
    cout<<"eski değer: "<<sayi<<endl;
    degistir(&sayi);
    cout<<"değişmiş değer: "<<sayi<<endl;
    return 0;
}

Sıralama algoritmaları

#include<iostream>
using namespace std;
// Kabarcık sıralama *************************************************************************
void kabarcik(int dizi[], int n) 
{ 
    int i, j; 
    for (i = 0; i < n; i++)     
      for (j = 0; j < n-1; j++) 
    	    if (dizi[j] > dizi[j+1]) 
       	    {
        		int temp = dizi[j];
        		dizi[j] = dizi[j+1];
        		dizi[j+1] = temp;
      }
      
} 

// Yerleştirmeli sıralama *************************************************************************
void yerlestirmeli(int dizi[], int n)
{
  int i, j, anahtar;
  for(i = 1; i<n; i++)
  {
    anahtar = dizi[i];
    j = i-1;
    while(j>=0 && dizi[j]>anahtar)
    {
      dizi[j+1] = dizi[j];
      j = j-1;
    }	
    dizi[j+1] = anahtar;
  }
}

// Seçmeli sıralama *************************************************************************
void secmeli(int arr[], int n)
{
  int enkucuk, yedek;
    for (int i = 0; i < n-1; i++)
  {
    	enkucuk = i;
    	for (int j = i+1; j < n; j++)
    	{
        	if (arr[j]<arr[enkucuk])
        	{
            	enkucuk = j;
        	}
    	}

    	if (enkucuk != i)
    	{
        	yedek = arr[i];
        	arr[i] = arr[enkucuk];
        	arr[enkucuk] = yedek;
    	}               
  }
}

// Kabuk sıralama *************************************************************************
void kabuk(int dizi[], int n) 
{
  for (int a = n / 2; a > 0; a /= 2) 
  {
  for (int i = a; i < n; i += 1) 
  {
      int temp = dizi[i];
      int j;
      for (j = i; j >= a && dizi[j - a] > temp; j -= a) {
        dizi[j] = dizi[j - a];
      }
      dizi[j] = temp;
    }
  }
}

// Hızlı sıralama *************************************************************************
int bolumlendir(int dizi[], int kucuk, int buyuk)
{
    int pivot = dizi[buyuk]; // pivot
    int i = (kucuk - 1); // Index of smaller element and indicates the right position of pivot found so far
 
    for (int j = kucuk; j <= buyuk - 1; j++)
    {
        // If current element is smaller than the pivot
        if (dizi[j] < pivot)
        {
            i++; // increment index of smaller element
            int temp = dizi[i];
            dizi[i] = dizi[j];
            dizi[j] = temp; 
        }
    }
    int temp = dizi[i+1];
    dizi[i+1] = dizi[buyuk];
    dizi[buyuk] = temp;
    return (i + 1);
}

void hizlisirala(int dizi[], int kucuk, int buyuk)
{
    if (kucuk < buyuk)
    {
        int pi = bolumlendir(dizi, kucuk, buyuk);
        hizlisirala(dizi, kucuk, pi - 1);
        hizlisirala(dizi, pi + 1, buyuk);
    }
}

//*******************************************************************************
main()
{
  int dizi[5] = {10, 6, 8, 11, 2};
  
  kabarcik(dizi, 5);
  yerlestirmeli(dizi, 5);
  secmeli(dizi, 5);
  kabuk(dizi,5);
  hizlisirala(dizi, 0, 4);
  
  for(int i = 0; i<5; i++)
    cout<<dizi[i]<<"  ";
}