c++ - 我应该使用冒泡排序、插入排序等排序算法,还是应该使用 C++ 中内置的 sort() 函数对数组进行排序?

标签 c++ arrays algorithm sorting data-structures

我应该使用冒泡排序、插入排序等排序算法,还是应该使用 C++ 中内置的 sort() 函数对数组进行排序?如果我应该使用 sort() 函数,为什么我需要学习其他排序算法?如果有内置排序功能,我不明白这种算法有什么用,它们有什么特别之处吗?

最佳答案

Should I use sorting algorithms like bubble sort, insertion sort or should I use the inbuilt sort() function in c++ to sort arrays?

这是你的愿望。你可以使用任何东西。但是在使用任何代码之前,您需要了解时间和空间复杂性的重要性以及您的要求。

And if I should use sort() function, why do I need to learn other sorting algorithms?

这个问题的答案很棘手。您需要学习一些东西,因为每种排序算法在实现、时间和空间复杂性方面都不同。例如,冒泡排序的运行时间为 O(n^2),而归并排序的运行时间为 O(n log n)。 而冒泡排序占用的空间是 O(1),归并排序占用 O(n) 的空间。就代码复杂度而言,您可以在 5 分钟内编写一个冒泡排序片段,而归并排序可能需要 30 分钟。

I'm not understanding what is the use of such algorithms if there is an inbuilt sort function, do they have something special?

是的,他们有。这与要求有关。今天,您可能不需要节省空间的算法。但是当出现这种情况时,您可能需要优先选择一种特定的算法。通常,您学习这些概念只是为了了解当前算法是如何开发的。

关于c++ - 我应该使用冒泡排序、插入排序等排序算法,还是应该使用 C++ 中内置的 sort() 函数对数组进行排序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66720937/

相关文章:

c++ - 为什么我对以下函数的调用不明确?

ruby - 如何使具有回溯算法的数独求解器返回?

c++ - 使用 glFrustum 进行离轴投影

c++ - 在 .NET Core 3.1 中运行托管 C++/CLI 程序集时出现错误的图像格式

没有第 3 方库的 C++ 图像处理教程

python - 从 numpy memmap 切片创建 ndarray

c - 在C中设置二维数组的起始内存地址?

java - 两个 16 位整数到一个 32 位浮点值

iphone - 如何从 iPhone 中的 C++ 代码调用 C 函数?

arrays - codeigniter 在 session 中传递数组并检索