Мне нужно прочитать список из 10000 целых чисел и поместить их в вектор в порядке возрастания.Обратите внимание, что я не читаю , затем сортирую, я сортирую , а читаю.
Я делаю это как учебное упражнение.Я понимаю, что сортировка при чтении - это O (n ^ 2), а при чтении, тогда сортировка может быть O (n + (n log (n)) с быстрой сортировкой или аналогичной.
Я сделал это вC Массив, но у меня проблемы с этим с вектором. Любой совет, как это сделать?
Заранее спасибо!
РЕДАКТИРОВАТЬ: Код массива C:
Чтобы полностью объяснить, у меня есть два класса: ArrayIntStorage и VectorIntStorage.
Весь смысл в том, что это учебное упражнение.
Каждый из этих классов имеетпеременная-член _data, один тип int [], а другой вектор.
Каждый класс имеет метод чтения и записи, это метод чтения для ArrayIntStorage
void ArrayIntStorage::read(istream &sin)
{
string x;
sin >> x >> _numberOfInts;
_data = new int[_numberOfInts];
if(_sortRead)
{
int i, j, index;
sin >> _data[0];
for(i = 1; i < _numberOfInts; i++)
{
sin >> index;
j = i;
while((j > 0) && (_data[j-1] > index))
{
_data[j] = _data[j - 1];
--j;
}
_data[j] = index;
}
}
else
{
for(int i = 0; i < _numberOfInts; ++i)
{
sin >> _data[i];
}
}
}