2020
10-10
10-10
C++/GoLang如何实现自底向上的归并排序
前言上一篇文章写了一个自顶向下的归并排序,把一个完整的数组不断二分,然后再合并。其实换一种思路:把数组中相邻的N个元素看成是已经二分好了的,直接进行合并,就省掉了二分那一步骤C++实现:template<typenameT>voidmergeSortButton2Top(Tarr[],intn){for(intsize=1;size<=n;size+=size){for(inti=0;i+size<n;i+=2*size)//对[i,i+size-1]和[i+size,i+2*size-1]进行归并__merge(arr,i,i+size...
继续阅读 >