4.10 Algoritmalar

C++ algoritmaları, belirli bir sorunu çözmek veya belirli bir görevi yerine getirmek için izlenen adımlar veya işlemler dizisidir. Algoritmalar, verileri işlemek, sıralamak, aramak ve çeşitli matematiksel hesaplamalar yapmak için yaygın olarak kullanılır. C++, algoritmaların uygulamaları için kapsamlı bir standart şablon kütüphanesi (STL) sunar.

Algoritmaların Temel Özellikleri

  1. Sonluluk: Bir algoritmanın sonlu bir sayıda adımda tamamlanması gerekir.

  2. Tanımlılık: Her bir adımın açık ve net bir şekilde tanımlanması gerekir.

  3. Girdi: Algoritmalar, belirli bir girdi alabilir.

  4. Çıktı: Algoritmalar, girdilere dayanarak belirli bir çıktı üretir.

  5. Etkinlik: Algoritmanın mümkün olan en az kaynakla çalışması beklenir.

C++’ta Yaygın Algoritmalar

C++ STL, birçok yerleşik algoritma içerir. Bu algoritmalar, #include <algorithm> başlığı altında bulunur. İşte bazı yaygın C++ algoritmaları:

1. Sıralama Algoritmaları

std::sort: Elemanları sıralamak için kullanılır.

#include <iostream>
#include <vector>
#include <algorithm> // sort için

int main() {
    std::vector<int> sayilar = {5, 2, 8, 1, 3};

    std::sort(sayilar.begin(), sayilar.end()); // Artan sıralama

    std::cout << "Sıralı sayılar: ";
    for (int sayi : sayilar) {
        std::cout << sayi << " ";
    }
    std::cout << std::endl;

    return 0;
}

2. Arama Algoritmaları

std::find: Bir elemanı bulmak için kullanılır.

#include <iostream>
#include <vector>
#include <algorithm> // find için

int main() {
    std::vector<int> sayilar = {5, 2, 8, 1, 3};
    int aranacak = 8;

    auto it = std::find(sayilar.begin(), sayilar.end(), aranacak);

    if (it != sayilar.end()) {
        std::cout << aranacak << " bulundu!" << std::endl;
    } else {
        std::cout << aranacak << " bulunamadı!" << std::endl;
    }

    return 0;
}

3. Kopyalama Algoritmaları

std::copy: Bir koleksiyondaki elemanları başka bir koleksiyona kopyalamak için kullanılır.

#include <iostream>
#include <vector>
#include <algorithm> // copy için

int main() {
    std::vector<int> sayilar1 = {1, 2, 3, 4, 5};
    std::vector<int> sayilar2(sayilar1.size());

    std::copy(sayilar1.begin(), sayilar1.end(), sayilar2.begin());

    std::cout << "Kopyalanan sayılar: ";
    for (int sayi : sayilar2) {
        std::cout << sayi << " ";
    }
    std::cout << std::endl;

    return 0;
}

Sonuç

C++’ta algoritmalar, verileri işlemek ve belirli görevleri yerine getirmek için kritik öneme sahiptir. C++ Standard Template Library (STL), sık kullanılan algoritmaların etkili bir şekilde uygulanmasını sağlar.

Last updated