数据结构之——归并排序
来源:互联网 发布:卖淘宝小号的网站 编辑:程序博客网 时间:2024/06/05 08:06
归并排序
package Sort;import java.util.Arrays;public class MergeSort {public int[] mergeSort(int[] A ,int n){int first = 0;int last = n-1;process(A,first,last);return A;}//递归调用的分治函数private void process(int[] a, int first, int last) {if(first>=last)return;int mid = (first+last)/2;process(a,first,mid); // 左边递归process(a,mid+1,last); // 右边递归merge(a,first,mid,last); // 合并}//两个有序数组进行合并 ,其实有序的过程应该是在merge函数中实现的。private void merge(int[] a, int first, int mid, int last) {int i=first;int j=mid+1;int k=0;int[] temp = new int[last-first+1]; //用来暂时存储中间结果,即将原数组中的元素取出,进行合并后暂时存储在temp中while(i<=mid&&j<=last){if(a[i]<a[j]){temp[k++] = a[i++]; }else{temp[k++] = a[j++]; }}while(i<=mid){temp[k++] = a[i++];}while(j<=last){temp[k++] = a[j++];}//将排好序的对应部分拷贝到 a 数组中 ,即每次归并时,都改变了原数组A中的数据。for(int i1=0;i1<temp.length;i1++){a[first++] = temp[i1];}}public static void main(String[] args) {int[] a ={2,1,3,8,5,7,4,10};int[] b = new int[]{};MergeSort ms = new MergeSort();b = ms.mergeSort(a, 8);System.out.println(Arrays.toString(b));}}
0 0
- 数据结构之排序——归并排序
- 数据结构之——归并排序
- 数据结构 — 归并排序
- 数据结构 — 归并排序
- 数据结构之归并排序
- 数据结构之归并排序
- 数据结构之归并排序
- 数据结构之归并排序
- 数据结构之归并排序
- 数据结构——归并排序
- 数据结构——归并排序
- 数据结构——归并排序
- 《数据结构--排序》之归并排序
- 数据结构之排序--归并排序
- 数据结构之排序:归并排序
- 数据结构之(归并排序)
- 数据结构之归并排序、基数排序
- 数据结构系列之归并排序
- Java数据类型之基础数据类型(四类八种)
- 赛马
- BITCS2016程序设计 | 20. 猜-丁-壳!
- Mysql Exists与in
- oracle11g broker使用的过程遇到的几个问题
- 数据结构之——归并排序
- 常用开源类库總結
- Html5+CSS3基础知识汇总-html5篇
- hrbustoj.G.FBI Tree(2016级新生程序设计全国邀请赛 )
- git安装
- MySQL数据库5.X版本基本手工注入总结
- UVa 156
- mui:文件上传
- js内存泄漏常见的四种情况