nngbr1d.cpp

#define USECHRONO
#include <cassert>
#include <climits>
#include <cstdlib>
#include <stack>
#include <map>
#include <numeric>
#include "eval.hpp"

/* COMIENZO DE DESCRIPCION

   __USE_WIKI__
   Dada una lista de enteros 
   implemente una funcion 
   #void nearest_neighbor_1d(list<int> &L, int v);# 
   que ordene la lista de acuerdo a la distancia en valoe absoluto
   al valor de referencia #v# pasado como argumento.

   [Tomado en el Trabajo Practico de Laboratorio 1
   (TPL1) de 2020-09-24]
   keywords: lista

FIN DE DESCRIPCION */

using namespace aed;
using namespace std;

//---:---<*>---:---<*>---:---<*>---:---<*>---:---<*> discrete_moving_mean (tpl 1)
void nearest_neighbor_1d(list<int> &L, int v){
  list<int> L2;
    
  while(!L.empty()){
    list<int>::iterator it = L.begin();
    list<int>::iterator itMin = it;
    while(it!=L.end()){
      if(abs(*it-v)<abs(*itMin-v)){
        itMin = it;
      }
      it++;
    }
    L2.push_back(*itMin);
    L.erase(itMin);
  }
  L = L2;
}

//---:---<*>---:---<*>---:---<*>---:---<*>---:---<*>
int main() {
  
  Eval ev;
  int vrbs = 0;
  ev.eval<1>(nearest_neighbor_1d,vrbs);
  return 0;
}

Generated by GNU Enscript 1.6.6.