c++ - 排序算法 - 方法

标签 c++ algorithm design-patterns sorting

我必须使用面向对象的方法实现三种不同的排序算法,并且我一直在思考解决这个问题的最佳方法。

基本上,我认为它应该是这样的:

->排序(类、接口(interface)、多态)

继承:

->冒泡排序

->插入排序

->快速排序

如果每个排序都有相同的接口(interface),那么访问不同的排序方法会更容易,因此,这意味着当我要添加其他排序算法时,我可以轻松地将它们实现到当前的设计和类结构中.

我的问题是:

  • 这种方法好用吗?

  • 我可以使用模板吗? IE。如果我想使用冒泡,它会调用冒泡排序,如果我想使用插入,它会调用插入?

最佳答案

Sort 应该是接口(interface)或抽象类,而冒泡/插入/快速排序应该是实现/具体类。

以下内容也值得学习:

策略模式:

Strategy Pattern Diagram http://en.wikipedia.org/wiki/Strategy_pattern

状态模式:

State Pattern Diagram

http://en.wikipedia.org/wiki/State_pattern

至于模板,我认为您的情况不值得。

关于c++ - 排序算法 - 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13141106/

相关文章:

c++ - 为什么 C++ 在类声明后有一个 ";"

c++ - 在不控制线程的情况下同步 boost::thread 中的 STD cout 输出

算法大 O 表示法

c++ - 多种输出格式的设计模式

c++ - 如何使用特定的 gcc 编译器运行 make 命令?

c++:将模板声明为类成员

arrays - 最大化数组中的反转计数

algorithm - 找到数组中最小的缺失数

python - 复杂查询的设计模式

JavaScript 命名空间模式(类似于对象的属性)