摘要:
第二章 算法入门两个有序数组的合并这个算法我的实现跟算法导论上的实现有些许区别。我没有使用《算法导论》上的哨兵位的方法。而且直接判断有没有到数组的末尾。不过为了跟书上保持一致,我的伪代码还是使用算法导论上的伪代码。算法描述:MERGE(A, p, q, r)是把存储在A[p...q]和A[q+1...r]这两部分中的有序子序列合并到A[p...r]并使其有序。两个子数组的长度分别为int n1=q-p+1;int n2=r-q; 建立两个新数组L和R,用于分别存放原数组的两个有序部分。分别遍历两个新的数组L和R,依次比较其中元素,将其中较小的元素存放到原数组A的对应位置。L和R中任何一个数组遍 阅读全文
摘要:
过几个月要面试了,最近在看《算法导论》,想把里面的算法都用C++实现一遍。今天是第一个算法,比较简单。第二章 算法入门插入排序伪代码实现INSERTION-SORT(A) 《算法导论》P101 for j ← 2 to length[A]2 do key ← A[j]3 //Insert A[j] into the sorted sequence A[1 ‥ j - 1].4 i ← j - 15 while i > 0 and A[i] > key6 do A[i + 1] ← A[i]7 ... 阅读全文