ในบทช่วยสอนนี้ เราจะเขียนโปรแกรมเพื่อหาค่าที่น้อยที่สุดลำดับที่ 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
สรุป
หากมีข้อสงสัยเกี่ยวกับบทช่วยสอนนี้ สามารถถามได้ในส่วนความคิดเห็น