排序算法---归并排序
来源:互联网 发布:织梦淘宝客模板 编辑:程序博客网 时间:2024/06/16 12:54
算法设计:
归并排序算法将数组分为两半,对每部分递归的应用归并排序。在两部分都排好序后,对他们进行归并。算法时间复杂度为O(nlogn)
public static void mergeSort(int[] list){ if(list.length>1){ mergeSort(list[0....list.length/2]); mergeSort(list[list.length/2....list.length]); merge list[0....list.length/2] with list[list.length/2....list.length] }}
算法实现:
public class MergeSort { public static void main(String[] args) { int[] list={2,3,2,5,6,1,-2,3,14,12}; mergeSort(list); System.out.print("{2,3,2,5,6,1,-2,3,14,12}" + " by insertionSort is {"); for (int i = 0; i < list.length; i++) { System.out.print(list[i] + ","); } System.out.println("}"); } public static void mergeSort(int[] list) { if (list.length > 1) { int[] firstHalf = new int[list.length / 2]; System.arraycopy(list, 0, firstHalf, 0, list.length / 2); mergeSort(firstHalf); int secondHalfLength = list.length - list.length / 2; int[] secondHalf = new int[secondHalfLength]; System.arraycopy(list, list.length / 2, secondHalf, 0, secondHalfLength); mergeSort(secondHalf); merge(firstHalf, secondHalf, list); } } public static void merge(int[] list1, int[] list2, int[] tmp) { int current1 = 0; int current2 = 0; int current3 = 0; while (current1 < list1.length && current2 < list2.length) { if (list1[current1] < list2[current2]) tmp[current3++] = list1[current1++]; else tmp[current3++] = list2[current2++]; } while (current1 < list1.length) tmp[current3++] = list1[current1++]; while (current2 < list2.length) tmp[current3++] = list2[current2++]; }}
阅读全文
0 0
- 排序算法-归并排序
- 排序算法------归并排序
- 排序算法-归并排序
- 排序算法---归并排序
- 排序算法--归并排序
- 排序算法--归并排序
- 排序算法-归并排序
- 排序算法--归并排序
- 排序算法--归并排序
- 排序算法:归并排序
- 排序算法-归并排序
- 排序算法:归并排序
- 【排序算法】归并排序
- 排序算法--归并排序
- 排序算法-归并排序
- 排序算法--归并排序
- 排序算法:归并排序
- 【排序算法】归并排序
- 8_1 C语言 | 编译原理
- 多态 & 深入探索C++模型
- Unity5.3.3 webgl 注意
- java 冒泡排序程序
- 宏和函数的区别(C语言)
- 排序算法---归并排序
- Kaggle竞赛记录
- Spring4mvc Controller Service map转json json转string
- mysql-mysqlbin-log,独立表空间开启
- Socket多客户端通信
- java 二分法查询
- [ELK] File 文件监控
- CentOS6.8mini镜像安装步骤 命令w查看连接linux服务的用户信息
- Win7 64位专业版安装完Git运行GitBash报错及安装后的设置