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

本文通过伪代码介绍归并排序算法,这是一种基于分治法的稳定排序算法,时间复杂度为O(nlogn)。文章阐述了归并排序的主要思想,即不断将序列分为子序列,然后比较子序列元素,最终合并成有序序列。通过实例和步骤解析,帮助读者掌握如何用伪代码描述归并排序的过程。
最低0.47元/天 解锁文章
763

被折叠的 条评论
为什么被折叠?



