Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> C++

C++ में मूल के निकटतम बिंदु K खोजें

मान लीजिए कि हमारे पास बिंदुओं का एक सेट है। हमारा कार्य K बिंदुओं को खोजना है जो मूल बिंदु के सबसे निकट हैं। मान लीजिए कि बिंदु (3, 3), (5, -1) और (-2, 4) हैं। फिर निकटतम दो (K =2) अंक (3, 3), (-2, 4) हैं।

इस समस्या को हल करने के लिए, हम उनकी यूक्लिडियन दूरी के आधार पर बिंदुओं की सूची को क्रमबद्ध करेंगे, उसके बाद क्रमबद्ध सूची से सबसे ऊपर के K तत्वों को लेंगे। वे K निकटतम बिंदु हैं।

उदाहरण

#include<iostream>
#include<algorithm>
using namespace std;
class Point{
   private:
   int x, y;
   public:
   Point(int x = 0, int y = 0){
      this->x = x;
      this->y = y;
   }
   void display(){
      cout << "("<<x<<", "<<y<<")";
   }
   friend bool comparePoints(Point &p1, Point &p2);
};
bool comparePoints(Point &p1, Point &p2){
   float dist1 = (p1.x * p1.x) + (p1.y * p1.y);
   float dist2 = (p2.x * p2.x) + (p2.y * p2.y);
   return dist1 < dist2;
}
void closestKPoints(Point points[], int n, int k){
   sort(points, points+n, comparePoints);
   for(int i = 0; i<k; i++){
      points[i].display();
      cout << endl;
   }
}
int main() {
   Point points[] = {{3, 3},{5, -1},{-2, 4}};
   int n = sizeof(points)/sizeof(points[0]);
   int k = 2;
   closestKPoints(points, n, k);
}

आउटपुट

(3, 3)
(-2, 4)

  1. C++ में एक लाइन के मध्य-बिंदु को खोजने का प्रोग्राम

    इस समस्या में, हमें दो बिंदु A और B दिए गए हैं, जो एक रेखा के आरंभ और अंत बिंदु हैं। हमारा काम C++ में एक लाइन के मध्य-बिंदु को खोजने के लिए एक प्रोग्राम बनाना है। समस्या का विवरण - यहाँ, हमारे पास एक रेखा है जिसमें शुरुआती और अंत बिंदु A(x1, y1) और B(x2, y2) हैं। और हमें रेखा के मध्य-बिंदु को खोजन

  1. C++ में त्रिभुज के केंद्रक को खोजने का कार्यक्रम

    इस समस्या में, हमें एक 2D सरणी दी गई है जो त्रिभुज के तीन शीर्षों के निर्देशांकों को दर्शाती है। हमारा काम C++ में त्रिभुज के Centroid को खोजने के लिए एक प्रोग्राम बनाना है। सेंट्रोइड त्रिभुज का वह बिंदु है जिस पर त्रिभुज की तीन माध्यिकाएं प्रतिच्छेद करती हैं। माध्यिका त्रिभुज की वह रेखा है जो त्र

  1. सी ++ में बाइनरी ट्री में निकटतम पत्ता खोजें

    मान लीजिए, एक बाइनरी ट्री दिया गया है। इसमें विभिन्न स्तरों पर पत्ती की गांठें होती हैं। एक और पॉइंटर दिया गया है, जो एक नोड की ओर इशारा कर रहा है। हमें नुकीले नोड से निकटतम लीफ नोड की दूरी ज्ञात करनी होगी। विचार करें कि पेड़ नीचे जैसा है - यहां लीफ नोड्स 2, -2 और 6 हैं। यदि पॉइंटर नोड -5 की ओर इ