fork download
  1. //
  2. // main.cpp
  3. // K nearest neighbors
  4. //
  5. // Created by Himanshu on 18/08/21.
  6. //
  7.  
  8. #include <iostream>
  9. #include <vector>
  10. #include <algorithm>
  11. #include <math.h>
  12. using namespace std;
  13. int const N = 5;
  14.  
  15. bool cmp( const vector<float>& p,
  16. const vector<float>& q ) {
  17. return p[1] < q[1];
  18. }
  19.  
  20. void solve (int points[][2], int point[], int k) {
  21. vector< vector<float> > distance;
  22.  
  23. for (int i=0; i<N; i++) {
  24. float d = sqrt((pow((point[0] - points[i][0]), 2)) + (pow((point[1] - points[i][1]), 2)));
  25. float pos = i;
  26. distance.push_back({pos, d});
  27. }
  28. sort(distance.begin(), distance.end(), &cmp);
  29.  
  30. cout<<"K nearest neighbors:"<<endl;
  31. for (int i=0; i<k; i++) {
  32. cout<<distance[i][0]<<" - distance: "<<distance[i][1]<<endl;
  33. }
  34. }
  35.  
  36. int main () {
  37. int points[N][2] = {{1, 1}, {3, 4}, {2, 3}, {7, 8}, {2, 5}};
  38. int point[2] = {0, 0};
  39. int k = 2;
  40. solve(points, point, k);
  41. return 0;
  42. }
  43.  
Success #stdin #stdout 0.01s 5432KB
stdin
Standard input is empty
stdout
K nearest neighbors:
0 - distance: 1.41421
2 - distance: 3.60555