#include #include #include // infinity #include // sort using namespace std; void diferenciaMinimaLenta(const vector & v) { float minimo = numeric_limits::infinity(), candidato, primero, segundo; for (int i = 0; i <= v.size() - 2; i++) for (int j = i + 1; j <= v.size() - 1; j++) { candidato = abs(v[i] - v[j]); if (candidato < minimo) { minimo = candidato; primero = v[i]; segundo = v[j]; } } cout << "Resultado: " << primero << ", " << segundo << endl; } void diferenciaMinimaRapida(const vector & v) { float minimo = numeric_limits::infinity(), candidato, primero, segundo; vector copia(v); // O(n) sort(copia.begin(), copia.end()); // O(n log n) for (int i = 0; i <= copia.size() - 2; i++) { // O(n) candidato = copia[i + 1] - copia[i]; if (candidato < minimo) { minimo = candidato; primero = copia[i]; segundo = copia[i + 1]; } } cout << "Resultado: " << primero << ", " << segundo << endl; } int main() { vector v = {33, 50, 87, 12, 93, 41}; diferenciaMinimaLenta(v); diferenciaMinimaRapida(v); }