画出算法的演示图,展现算法对某个实例详细的执行过程,可以很清晰地把算法写下来。
注意以下的几点:
- 实例的规模应该尽可能小,便于人工分析算法的执行过程;
- 实例应该尽可能包含各种特殊情况,以确保跟着演示图编写的代码也会考虑到这些特殊情况;
- 演示图应当简单、简洁、清晰。
通过参考这篇快速排序的博客(排序算法——解决大量重复元素的三向切分的快速排序)的演示图,我很快就写出了三向切分的快速排序算法。
如果要凭空思考这个算法,大脑的负荷比较重,且有的时候难以考虑到一些具体细节。
画出算法的演示图,展现算法对某个实例详细的执行过程,可以很清晰地把算法写下来。
注意以下的几点:
通过参考这篇快速排序的博客(排序算法——解决大量重复元素的三向切分的快速排序)的演示图,我很快就写出了三向切分的快速排序算法。
如果要凭空思考这个算法,大脑的负荷比较重,且有的时候难以考虑到一些具体细节。