对数组元素进行排序

时间:2011-06-09 14:22:40

标签: c++ sorting stl

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 个答案:

答案 0 :(得分:4)

sort算法将多次调用比较函数,每次都使用数组中的两个条目。您不知道也不应该关心您的比较函数将被调用多少次或什么顺序。

答案 1 :(得分:1)

自己检查:

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

请注意,结果仅适用于您的具体实施。

答案 2 :(得分:0)

Sorting algorithm可以是任何可能的算法。您不需要知道使用哪一个(冒泡排序,快速排序等)。该算法将连续选择一对数据,并进行比较,然后决定是否移动它们。在每次比较时,您的比较函数将告诉算法第一个元素是否小于第二个元素。排序函数只接收迭代器指向的两个值。