Я пытаюсь измерить количество сравнений, используемых различными алгоритмами поиска. Мой код довольно прост - данный вектор объектов, то я называю std::sort(students.begin(), students.end());
Реализация std :: sort Правильно
Я выполнил оператор сравнения в моем классе Student
так:
bool Student::operator < (Student s) const {
compareCount++;
return number < s.getNumber();
}
где compareCount
является статической переменной. Однако мои результаты озадачивают.
Почему std::sort
требуется два сравнивает для списка из двух элементов? Это заставляет меня думать, что некоторая часть моего кода неверна.
Это не очень понятно, что заставляет вас путать с результатами. – lisyarus
Что озадачивает? – zneak
Для экспериментов используйте гораздо больший размер. Например, 10000, 100000 или 1000000. 8 слишком мала. – timrau