Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Phần tử K-th nhỏ/lớn dùng STL trong C++

Trong hướng dẫn này, chúng ta sẽ viết một chương trình tìm số nhỏ thứ K trong mảng không sắp xếp.

Các bước giải quyết

  • Khởi tạo mảng và K.
  • Khởi tạo ordered set rỗng.
  • Duyệt mảng, chèn từng phần tử vào set.
  • Duyệt set từ 0 đến K - 1.
  • Trả về giá trị.

Ví dụ

Dưới đây là mã nguồn C++:

#include <bits/stdc++.h> 
using namespace std; 

int findKthSmallestNumber(int arr[], int n, int k) { 
    set<int> s; 
    for (int i = 0; i < n; i++) { 
        s.insert(arr[i]); 
    } 
    auto it = s.begin(); 
    for (int i = 0; i < k - 1; i++) { 
        it++; 
    } 
    return *it; 
} 

int main() { 
    int arr[] = { 45, 32, 22, 23, 12 }, n = 5, k = 3; 
    cout << findKthSmallestNumber(arr, n, k) << endl; 
    return 0; 
}

Kết quả

Nếu bạn chạy mã trên, kết quả sẽ là:

23

Kết luận

Nếu bạn có bất kỳ thắc mắc nào về hướng dẫn này, hãy để lại bình luận bên dưới.