归并排序
来源:互联网 发布:程序员的发展趋势 编辑:程序博客网 时间:2024/06/10 11:27
class MergeSort {/** * @param args */public static void main(String[] args) {// TODO Auto-generated method stubint[] array = new int[]{7,3,43,5,65,7,8,98,90,5,345,35,34};int[] tmp = new int[array.length];mergeSort(array, tmp, 0, array.length-1 );for (int i = 0; i < array.length; i++) {System.out.println(array[i]);}}public static void merge(int[] arry, int[] tmp, int begin, int stop){if(begin >= stop) return;int mid = (begin+stop)/2;int i = begin;int j = mid+1;int s = 0;while(i <= mid && j <= stop){if(i <= mid && arry[i] <= arry[j] ){tmp[s++] = arry[i++];}if(i <= mid && arry[i] >= arry[j] ){tmp[s++] = arry[j++];}}while(i <= mid){tmp[s++] = arry[i++];}while(j <= stop){tmp[s++] = arry[j++];}for (int k = 0; k <= stop - begin; k++) {arry[begin + k] = tmp[k];}}public static void mergeSort(int[] array,int[] tmp, int begin, int stop ){int mid = (begin +stop ) / 2;if(begin >= stop) return;mergeSort(array, tmp, begin, mid);//递归将左侧排序mergeSort(array, tmp, mid+1, stop);//递归将右侧排序merge(array, tmp, begin, stop);//合并begin到stop区间的数据}}
0 0
- 归并排序-归并排序
- 归并和归并排序
- 归并与归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 排序::归并
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- 归并排序
- poj 2455 Secret Milking Machine (网络流)
- 找连续数 HDU5247
- leetcode Construct Binary Tree from Inorder and Postorder Traversal
- redis基本命令
- android适配
- 归并排序
- tcp服务器与客户端
- list,set练习和Map简述
- wxWidgets界面设计工具DialogBlocks
- 使用C++11实现类似C#的属性概念设计
- Jackson之JSON包的使用分析
- 数据结构实验之图论二:基于邻接表的广度优先搜索遍历
- 数据结构实验之查找六:顺序查找
- Android Activity 四种启动模式