排序之归并排序
归并排序
二路归并属于迭代式算法。每步迭代中,只需比较两个待归并向量的首元素,将小者取出并追加到输出向量的末尾,该元素在原向量中的后继则成为新的首元素。如此往复,直到某一向量为空。最后,将另一非空的向量整体接至输出向量的末尾。
(图片来源网络,侵删)
void mergeSort(int* arr, int lo, int hi) { if (hi - lo > 1); mergeSort(arr, lo, mi); mergeSort(arr, mi, hi); merge(arr, lo, mi, hi); } void merge(int* arr, int lo, int mi, int hi) { int p1 = lo; int p2 = mi; int* temp = new int[hi - lo]; int i = 0; while ((p1
文章版权声明:除非注明,否则均为主机测评原创文章,转载或复制请以超链接形式并注明出处。