从今天开始,我就要学习写伪代码了。都说实践是最好的老师,所以我希望通过对算法的描述来学习伪代码。
百度百科上介绍,伪码(Pseudocode)是一种算法描述语言。使用伪码的目的是使被描述的算法可以容易地以任何一种编程语言(Pascal,C,Java等)实现。
归并排序是分治法(Divide and conquer)一个非常典型的应用,时间复杂度为O(nlogn),是一种稳定排序的算法。
它的主要思想是将一个序列不断分成一个个子序列,直到不能再分,然后再分别比较不同子序列第一个元素的大小,如果想要一个从小到大的序列,则把小的放在目标序列前面,然后用下一个元素和未被放进工作序列的元素相比较,重复这个过程,直到所有元素都被排好序,再放回原序列。
归并排序实例
这是维基百科上归并排序的示例图片。
具体实现如下
/*数组a[]是原始数组,数组b[]是目标数组*/
归并排序(数组 a[],数组 b[]){
`分割与归并(数组 a[],0, a.