归并排序
什么是归并排序呢?
归并排序是利用归并的思想实现的排序方法,该算法采用经典的分治策略(分治法将问题分成一些小的问题然后递归求解,而治的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)。
定义显然不是那么通俗易懂,那么举个例子来说明吧。
首先给出将要排序的数字
第一步(将每一个数看做一组)
第二步(两两归并,归并后的两个数看为一组)
第三步(再将两组归并)
第四步(再将两组归并)
第五步(也是最后一步啦)
上面是一个简单地归并例子就排序好啦!
····················································································手动分界线··············································································
设n个元素需要k步归并可以排序好,即n/2^(k-1)=1 =>n=2^(k-1) =>k=log2n-1≈log2n
每一步需要n
归并排序的时间复杂度就为O(nlogn)
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)