我创建了两个项目,一个是C++,一个是Java。我对快速排序和选择排序在两个项目中做了时间测试。奇怪的是,我发现了一些非常奇怪的行为。
以下是一个大小为10000的数组的结果:
Java选择排序:80毫秒
C++选择排序:2914毫秒
Java快速排序:1毫秒
C++快速排序:约45秒
现在可以叫我疯了,但我一直被告知快速排序是最快的。这在Java中被证明是正确的,然而在C++中它却完全失败了。
所以我的问题是,C++是否以不同的方式处理快速排序?
我尝试保持两种语言之间的函数相同,它们完全相同,唯一的区别是在C++中使用向量而不是整数数组。无论如何,我更喜欢使用向量,因为我想在C ++中将其用于实际项目需要一个向量类型的排序。
我确定这是一个愚蠢的错误或者我正在做什么事情,但请提供一些关于发生这种情况的见解。
编辑:
我相信我知道问题出在哪里了。感谢大家极快的回应。我将修改我的代码以按预期工作。我知道这是一个简单的错误。此外,虽然问题很尴尬,但回复是有教育意义的。
以下是一个大小为10000的数组的结果:
Java选择排序:80毫秒
C++选择排序:2914毫秒
Java快速排序:1毫秒
C++快速排序:约45秒
现在可以叫我疯了,但我一直被告知快速排序是最快的。这在Java中被证明是正确的,然而在C++中它却完全失败了。
所以我的问题是,C++是否以不同的方式处理快速排序?
我尝试保持两种语言之间的函数相同,它们完全相同,唯一的区别是在C++中使用向量而不是整数数组。无论如何,我更喜欢使用向量,因为我想在C ++中将其用于实际项目需要一个向量类型的排序。
我确定这是一个愚蠢的错误或者我正在做什么事情,但请提供一些关于发生这种情况的见解。
编辑:
我相信我知道问题出在哪里了。感谢大家极快的回应。我将修改我的代码以按预期工作。我知道这是一个简单的错误。此外,虽然问题很尴尬,但回复是有教育意义的。