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

K'th องค์ประกอบที่เล็กที่สุด/ใหญ่ที่สุดโดยใช้ STL ใน C++


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

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

  • กำหนดค่าเริ่มต้นอาร์เรย์และ k
  • เริ่มต้นชุดคำสั่งเปล่า
  • วนซ้ำในอาร์เรย์และแทรกแต่ละองค์ประกอบลงในอาร์เรย์
  • วนซ้ำชุดตั้งแต่ 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

บทสรุป

หากคุณมีข้อสงสัยใดๆ ในบทแนะนำ โปรดระบุในส่วนความคิดเห็น