Domain, hosting, vps giá rẻ
Kết quả 1 đến 3 của 3

Chủ đề: [C++] Các thuật toán tìm kiếm cơ bản thường sử dụng

  1. #1
    nghiammo1992's Avatar
    Bài viết
    5,073
    Cấp độ
    Bang hội
    Tiếu Ngạo
    Tu luyện
    Độ kiếp Hư Thần
    Giới tính
    Con trai
    Join Date
    Jun 2012
    Đến từ
    Hà Giang
    Tuổi
    32
    Danh vọng
    10
    Điện thoại
    0367790762

    [C++] Các thuật toán tìm kiếm cơ bản thường sử dụng

    Thuật toán tìm kiếm tuyến tính (linear search)

    Mã nguồn PHP:
    #include <iostream>


    using namespace std;


    int LinearSearch(int A[], int nint x)
    {
        for (
    int i 0ni++)
            if (
    A[i] == x)
                return 
    i;
        return -
    1// duyệt hết mảng, không tìm thấy x
    }


    int main()
    {

        
    int arr[] {32,71,12,45,-26,80,53,-33,7,99,-5,1,2,3,100};

        
    int n sizeof(arr) / sizeof(arr[0]); // so luong phan tu trong mang

        
    cout << "So luong phan tu trong mang: " << << endl;

        
    cout << LinearSearch(arrn, -5);

        return 
    0;

    Diễn đàn chia sẻ kiến thức điện thoại: http://chiase123.com
    Click vào Hiện ra để xem chữ ký của mình :X

  2. #2
    nghiammo1992's Avatar
    Bài viết
    5,073
    Cấp độ
    Bang hội
    Tiếu Ngạo
    Tu luyện
    Độ kiếp Hư Thần
    Giới tính
    Con trai
    Join Date
    Jun 2012
    Đến từ
    Hà Giang
    Tuổi
    32
    Danh vọng
    10
    Điện thoại
    0367790762
    Thuật toán tìm kiếm nhị phân (binary search) (code này chỉ áp dụng cho mảng đã sắp xếp tăng dần)

    Mã nguồn PHP:
    #include <iostream>


    using namespace std;


    int BinarySearch(int A[], int nint x)
    {
        
    int left 0;
        
    int right 1;
        
    int mid;
        while (
    left <= right)
        {
            
    mid = (left right) / 2;
            if (
    A[mid] == x)
                return 
    mid// tìm thấy x, trả về mid là vị trí của x trong mảng A
            
    if (A[mid] > x)
                
    right mid 1// Giới hạn khoảng tìm kiếm lại là nửa khoảng trước
            
    else if (A[mid] < x)
                
    left mid 1// Giới hạn khoảng tìm kiếm lại là nửa khoảng sau
        
    }
        return -
    1// không tìm thấy x
    }

    int main()
    {

        
    int arr[] {-33,-26,-5,1,2,3,7,12,32,45,53,71,80,99,100};

        
    int n sizeof(arr) / sizeof(arr[0]); // so luong phan tu trong mang

        
    cout << "So luong phan tu trong mang: " << << endl;

        
    cout << BinarySearch(arrn, -5);

        return 
    0;

    Diễn đàn chia sẻ kiến thức điện thoại: http://chiase123.com
    Click vào Hiện ra để xem chữ ký của mình :X

  3. #3
    nghiammo1992's Avatar
    Bài viết
    5,073
    Cấp độ
    Bang hội
    Tiếu Ngạo
    Tu luyện
    Độ kiếp Hư Thần
    Giới tính
    Con trai
    Join Date
    Jun 2012
    Đến từ
    Hà Giang
    Tuổi
    32
    Danh vọng
    10
    Điện thoại
    0367790762
    Thuật toán tìm kiếm nội suy (interpolation search) (code này chỉ áp dụng cho mảng đã sắp xếp tăng dần)

    Mã nguồn PHP:
    #include <iostream>


    using namespace std;


    int InterpolationSearch(int A[], int nint x)
    {
        
    int left 0;
        
    int right 1;
        
    int mid;
        while (
    left <= right && >= A[left] && <= A[right])
        {
            
    mid left + (right left) * (A[left]) / (A[right] - A[left]);
            if (
    A[mid] == x)
                return 
    mid;
            if (
    A[mid] > x)
                
    right mid 1;
            else if (
    A[mid] < x)
                
    left mid 1;
        }
        return -
    1// Không tìm thấy x
    }

    int main()
    {

        
    int arr[] {-33,-26,-5,1,2,3,7,12,32,45,53,71,80,99,100};

        
    int n sizeof(arr) / sizeof(arr[0]); // so luong phan tu trong mang

        
    cout << "So luong phan tu trong mang: " << << endl;

        
    cout << InterpolationSearch(arrn, -5);

        return 
    0;

    Diễn đàn chia sẻ kiến thức điện thoại: http://chiase123.com
    Click vào Hiện ra để xem chữ ký của mình :X

Thông tin về chủ đề này

Users Browsing this Thread

Có 1 người đang xem chủ đề. (0 thành viên và 1 khách)

Các Chủ đề tương tự

  1. Hướng dẫn kiếm tiền online với adf.ly
    Bởi nghiammo1992 trong diễn đàn Chủ đề khác
    Trả lời: 3
    Bài viết cuối: 24/03/2017, 8:57
  2. [Game Online] Kiếm Hiệp: Nhất Đại Tông Sư
    Bởi nghiammo1992 trong diễn đàn Game Online
    Trả lời: 0
    Bài viết cuối: 19/11/2013, 13:50
  3. [Download truyện tranh] Kiếm Hồn - Trọn bộ
    Bởi nghiammo1992 trong diễn đàn Tổng hợp truyện tranh
    Trả lời: 0
    Bài viết cuối: 01/08/2013, 15:20
  4. [Game Việt hóa 100%] Ma kiếm: hồn đoạn hồng nhan
    Bởi nghiammo1992 trong diễn đàn Game Java
    Trả lời: 0
    Bài viết cuối: 22/07/2013, 10:05
  5. [Game Online] Kiếm thế: kiếm hiệp tình duyên
    Bởi nghiammo1992 trong diễn đàn Game Online
    Trả lời: 0
    Bài viết cuối: 10/05/2013, 11:58

Tag của Chủ đề này

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •