Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Programa para ordenacion de datos
- #include <iostream>
- #include <fstream>
- #include <cstdlib>
- #include <vector>
- #include <iterator>
- #include <algorithm>
- using namespace std;
- int main() {
- system ("clear");
- ifstream label1 ("datos.in");
- int n, i, j, k;
- int *a, *b, *index1, *index2;
- label1 >> n; // numero de datos
- a = new int [n]; b = new int [n]; index1 = new int [n]; index2 = new int [n];
- for (i=0; i < n; i++){
- index1[i] = 0;
- }
- cout << "\n";
- for (i=0; i < n; i++){
- label1 >> a[i];
- b[i] = a[i];
- }
- vector<int> unVector_no_orden (b, b+n);
- vector<int> unVector_orden (a, a+n);
- vector<int> unIndex1(index1, index1+n);
- vector<int> unIndex2(index2, index2+n);
- cout << "Serie desordenada de valores\n";
- copy (unVector_no_orden.begin(), unVector_no_orden.end(), ostream_iterator<int> (cout, " "));
- cout << "\n";
- sort (unVector_orden.begin(), unVector_orden.begin()+n);
- cout << "Serie ordenada de valores\n";
- copy (unVector_orden.begin(), unVector_orden.end(), ostream_iterator<int> (cout, " "));
- cout << "\n";
- k = 1;
- for (i=0; i < n; i++){
- unIndex2[i] = k;
- if (unVector_orden[i] == unVector_orden[i + 1]) {k += 0;}
- else {k += 1;}
- }
- cout << "En la serie ordenada asigna un orden repitiendo valores si es necesario\n";
- copy (unIndex2.begin(), unIndex2.end(), ostream_iterator<int> (cout, " "));
- cout << "\n";
- cout << "Enlaza los ordenes de la serie ordenada a la serie desordenada\n";
- // Funciona pero lo ideal seria que no recorriese nuevamente la lista sino que descartara
- // los ya verificados
- for (i=0; i < n; i++){
- for (j=0; j < n; j++){
- if(unVector_no_orden[j] == unVector_orden[i]) unIndex1[j] = unIndex2[i];
- }
- }
- copy (unIndex1.begin(), unIndex1.end(), ostream_iterator<int> (cout, " "));
- cout << "\n";
- delete a, b, index1, index2;
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement