Сортировка элементов массива - PullRequest
0 голосов
/ 09 июня 2011
void sort ( RandomAccessIterator first, RandomAccessIterator last, Compare_func );

Как работает Compare_func?Я хочу проследить это для каждого входа.Сортировка по возрастанию:

bool Compare_func(int i,int j) 
{ 
    return (i<j); 
}

Как параметры передаются в Compare_func?Например, для

array = {12,40,1,36};

Ответы [ 3 ]

4 голосов
/ 09 июня 2011

Алгоритм sort будет вызывать функцию сравнения несколько раз, каждый раз с двумя записями из вашего массива.Вы не знаете и не должны волноваться, сколько раз или в каком порядке будет вызываться ваша функция сравнения.

1 голос
/ 09 июня 2011

Проверьте сами:

bool Compare_func(int i,int j) 
{ 
    std::cout << "Comparing " << i << " with " << j << '\n';
    return (i<j); 
}

Имейте в виду, что результаты применимы только к вашей конкретной реализации.

0 голосов
/ 09 июня 2011

Алгоритм сортировки может быть любым возможным алгоритмом. Вам не нужно знать, какой из них используется (пузырьковая сортировка, быстрая сортировка и т. Д.). Алгоритм последовательно выберет пару данных и сравнит их, а затем решит, перемещать их или нет. При каждом сравнении ваша функция сравнения будет сообщать алгоритму, если первый элемент меньше второго или нет. Функция сортировки просто получит два значения, указанных итератором.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...