Cara menggunakan algoritma carian dalam C++

王林
Lepaskan: 2023-09-19 09:00:46
asal
1540 orang telah melayarinya

Cara menggunakan algoritma carian dalam C++

Cara menggunakan algoritma carian dalam C++

Algoritma carian ialah algoritma yang sangat penting dalam sains komputer, yang digunakan untuk mencari elemen khusus dalam pengumpulan data. Bahasa C++ menyediakan banyak algoritma carian terbina dalam, seperti carian linear, carian binari, dsb. Artikel ini akan memperkenalkan cara menggunakan algoritma carian dalam C++ dan memberikan contoh kod khusus.

1. Carian linear

Carian linear ialah algoritma carian yang mudah dan langsung adalah untuk membandingkan elemen yang akan ditemui dengan setiap elemen dalam set data satu demi satu sehingga elemen yang sepadan ditemui atau keseluruhan set data. dilalui.

C++ menyediakan beberapa algoritma carian linear, yang paling biasa digunakan ialah fungsi cari. Berikut ialah contoh kod untuk carian linear menggunakan fungsi find:

#include <iostream>
#include <algorithm>
#include <vector>

int main() {
    std::vector<int> data = {1, 2, 3, 4, 5};
    int target = 3;
    
    auto result = std::find(data.begin(), data.end(), target);
    
    if (result != data.end()) {
        std::cout << "找到了目标元素 " << target << std::endl;
    } else {
        std::cout << "未找到目标元素 " << target << std::endl;
    }
    
    return 0;
}
Salin selepas log masuk

Dalam kod di atas, data bekas vektor pertama kali dibuat, yang mengandungi beberapa elemen integer. Kemudian sasaran elemen sasaran ditakrifkan, dan fungsi cari digunakan untuk melakukan carian linear dalam bekas data. Jika elemen sasaran ditemui, keluarkan "Elemen sasaran ditemui", sebaliknya keluarkan "Elemen sasaran tidak ditemui".

2. Carian binari

Carian binari ialah algoritma carian yang cekap, dan premisnya ialah set data sudah dipesan. Prinsipnya adalah untuk membahagikan set data terlebih dahulu kepada dua bahagian, dan kemudian menentukan hubungan saiz antara elemen sasaran dan elemen tengah untuk menentukan bahagian mana elemen sasaran berada, dan kemudian melakukan carian binari dalam bahagian ini sehingga elemen sasaran ditemui atau binari tidak boleh diteruskan.

C++ menyediakan fungsi seperti algoritma carian binari lower_bound dan upper_bound. Berikut ialah contoh kod untuk carian binari menggunakan fungsi lower_bound:

#include <iostream>
#include <algorithm>
#include <vector>

int main() {
    std::vector<int> data = {1, 2, 3, 4, 5};
    int target = 3;
    
    auto result = std::lower_bound(data.begin(), data.end(), target);
    
    if (result != data.end() && *result == target) {
        std::cout << "找到了目标元素 " << target << std::endl;
    } else {
        std::cout << "未找到目标元素 " << target << std::endl;
    }
    
    return 0;
}
Salin selepas log masuk

Dalam kod di atas, data bekas vektor juga pertama kali dibuat dan sasaran elemen sasaran ditentukan. Kemudian gunakan fungsi lower_bound untuk melakukan carian binari dalam bekas data Jika elemen sasaran ditemui dan elemen yang ditunjuk oleh penunjuk hasil adalah sama dengan elemen sasaran, maka "elemen sasaran ditemui" adalah output, jika tidak, "elemen sasaran. tidak dijumpai" adalah output.

Perlu diingatkan bahawa algoritma carian binari memerlukan set data sudah dipesan. Oleh itu, data mesti diisih sebelum menggunakan algoritma carian binari.

Ringkasnya, artikel ini memperkenalkan cara menggunakan algoritma carian dalam C++ dan menyediakan contoh kod khusus. Algoritma carian ini sangat berguna dalam pengaturcaraan praktikal dan boleh membantu kami mencari elemen tertentu dengan cekap. Pada masa yang sama, dengan memahami prinsip dan penggunaan algoritma carian, kami boleh meningkatkan keupayaan pengaturcaraan kami dan dapat menyelesaikan masalah praktikal dengan lebih baik.

Atas ialah kandungan terperinci Cara menggunakan algoritma carian dalam C++. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan