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]<<" ";
}
