Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

หาค่าที่น้อยที่สุดลำดับที่ k ด้วย STL ใน C++

ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมเพื่อหาค่าที่น้อยที่สุดลำดับที่ k ในอาร์เรย์ที่ไม่ได้เรียงลำดับ

ขั้นตอนการแก้ปัญหา

  • กำหนดค่าเริ่มต้นของอาร์เรย์และ k
  • กำหนด ordered set ว่าง
  • วนลูปผ่านอาร์เรย์และแทรกแต่ละองค์ประกอบเข้าไปในเซต
  • วนลูปผ่านเซตจาก 0 ถึง k - 1
  • คืนค่า

ตัวอย่างโค้ด

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

int findKthSmallestNumber(int arr[], int n, int k) { 
    set<int> set; 
    for (int i = 0; i < n; i++) { 
        set.insert(arr[i]); 
    } 
    auto it = set.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; 
}

ผลลัพธ์

หากรันโค้ดด้านบน จะได้ผลลัพธ์ดังนี้:

23

สรุป

หากมีข้อสงสัยเกี่ยวกับบทช่วยสอนนี้ สามารถถามได้ในส่วนความคิดเห็น