void Statistics::sortX(ListBase<Product>* List,ListBase<Product>* List2,int x) { double maxrevenue=0; Product* item; Product * curr=NULL; int index=-1; ListBase<Product>* List1=new ListVector<Product>(); int y=x; int counter_distinct_revenue=0; // ListBase<int>* List2; for(int i=0;i<List->getLength();i++) { //int* add=new int(); //*add=*List->retrieveItem(i); List1->addItem(List->retrieveItem(i)); } for(int j=0;j<x+1 && j<List->getLength();j++) { maxrevenue=0; for(int i=0;i<List1->getLength();i++) { item=List1->retrieveItem(i); //int j=*List1->retrieveItem(i); double revenue=item->get_price()*item->get_sale(); if ((revenue)>=maxrevenue) {curr=item; index=i; maxrevenue=revenue; } } if (index!=-1){ if (j==0 && x!=0) { List2->addItem(curr); counter_distinct_revenue++; } if (j>0) { Product* Item1=curr; Product* Item2=List2->retrieveItem(j-1); double revenue1=Item1->get_sale()*Item1->get_price(); double revenue2=Item2->get_sale()*Item2->get_price(); if ((revenue1)==revenue2) { List2->addItem(curr); x++; } else if(j<x && counter_distinct_revenue<=y) { List2->addItem(curr); counter_distinct_revenue++; } } List1->removeItem(index);} } }