【基础算法】排序-复杂排序之一(归并排序的两种优化讨论)
来源:互联网 发布:冰种翡翠手镯价格知乎 编辑:程序博客网 时间:2024/04/29 21:29
优化讨论一:
因为mergesort在数组元素比较少的时候开销较大,所以第一种优化即考虑当元素被分割成少于7个元素的时候,直接采用插入排序来解决.
if (left + 6 >= right) {InsertionSort.insertionSort(array);return;} else {int middle = (left + right) / 2;mergeSort(array, left, middle);mergeSort(array, middle + 1, right);if (more(array[middle + 1], array[middle]))return;merge(array, left, middle, right);}}
优化讨论二:
当mid指针的元素小于mid+1指针的时候,说明这两个数组已经排好序,所以就可以跳过merge这一步,直接return就可以了。
if (left == right)return;else {int middle = (left + right) / 2;mergeSort(array, left, middle);mergeSort(array, middle + 1, right);if(more(array[middle+1], array[middle]))return;merge(array, left, middle, right);}
0 0
- 【基础算法】排序-复杂排序之一(归并排序的两种优化讨论)
- 【基础算法】排序-复杂排序之一(归并排序)
- 归并排序算法的优化
- JAVA实现排序算法(二):两种归并排序
- 两种归并排序算法的实现:二路归并排序和基本归并排序(虚拟消除递归的二路归并排序)
- 归并排序--基础的算法
- 基础排序算法-归并排序
- 【算法基础】归并排序
- 算法基础-归并排序
- 基础算法-归并排序
- 基础算法-归并排序
- 基础算法-归并排序
- [算法基础]归并排序
- 排序之一(插入排序、归并排序)
- 【基础算法】排序-复杂排序之三(堆排序)
- 【基础算法】排序-复杂排序之二(快速排序)
- 常用内部排序算法之一:归并排序
- 改进的两路归并排序算法
- android端和Struts2服务器端通信,交互信息,参数采用JSON,使用了HttpClient与HttpPost类
- Linux kernel的中断子系统之(六):ARM中断处理过程
- HttpClient模拟get,post请求并发送请求参数(json等)
- linux kernel的中断子系统之(七):GIC代码分析
- linux kernel的中断子系统之(八):softirq
- 【基础算法】排序-复杂排序之一(归并排序的两种优化讨论)
- 模拟post提交json
- Linux common clock framework(1)_概述
- Linux common clock framework(2)_clock provider 作者:蜗蜗 发布于
- JFinal / JFinal
- 项目中的好代码
- 常见的windows自启动方式
- 为什么程序员总是在熬夜?
- c# 连接mysql数据库