博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据结构--递归实现归并排序
阅读量:5037 次
发布时间:2019-06-12

本文共 1956 字,大约阅读时间需要 6 分钟。

1 /*通过递归实现归并排序 2  * 具有思路:将要排序的数组不断划分,直到只有一个元素的时候停止; 3  * 这是递归的基准条件,返回进行排序。 4  * 归并排序的时间复杂度:O(NlogN):考虑的是复制数据到workarr和workarr到arr的次数 5  *  6  * */ 7 public class MergeWithRecursion { 8     static int items = 6; 9     static int[] arr = {10,8,9,59,2,4};10     public static void main(String[] args) {11         display();12         mergeSort();13         display();14 15     }16     17     public static void mergeSort(){18         int[] workarr = new int[items];19         recMergeSort(workarr,0,items-1);20     }21 22     private static void recMergeSort(int[] workarr, int low, int high) {23         if(low == high){24             return;25         }26         else{27             int mid = (low + high) / 2;28             recMergeSort(workarr,low,mid);29             recMergeSort(workarr,mid+1,high);30             merge(workarr,low,mid+1,high);31         }32         33     }34 35     private static void merge(int[] workarr, int low, int mid, int high) {36         //workarr index37         int j = 0;38         int lowbound = low;39         int midindex = mid - 1;40         int n = high - lowbound + 1;41         //进行归并到工作区数组42         while(low <= midindex && mid <= high){43             if(arr[low] < arr[mid]){44                 workarr[j++] = arr[low++];45             }46             else{47                 workarr[j++] = arr[mid++];48             }49         }50         51         while(low <= midindex){52             workarr[j++] = arr[low++];53         }54         55         while(mid <= high){56             workarr[j++] = arr[mid++];57         }58         59         //将工作区部分有序的数组复制到原来的数组60         for(int i = 0; i < n;i++){61             arr[lowbound + i] = workarr[i];62         }63     }64     65     public static void display(){66         for(int i = 0; i < arr.length;i++){67             System.out.print(arr[i] + " ");68         }69         System.out.println();70     }71 72 }

 

转载于:https://www.cnblogs.com/sun1993/p/7820073.html

你可能感兴趣的文章
索尼(SONY) SVE1512S7C 把WIN8降成WIN7图文教程
查看>>
时间模块 && time datetime
查看>>
jquery自动生成二维码
查看>>
spring回滚数据
查看>>
新浪分享API应用的开发
查看>>
美国专利
查看>>
【JavaScript】Write和Writeln的区别
查看>>
百度编辑器图片在线流量返回url改动
查看>>
我对你的期望有点过了
查看>>
微信小程序wx:key以及wx:key=" *this"详解:
查看>>
下拉框比较符
查看>>
2.2.5 因子的使用
查看>>
css选择器
查看>>
photoplus
查看>>
Python 拓展之推导式
查看>>
[Leetcode] DP-- 474. Ones and Zeroes
查看>>
80X86寄存器详解<转载>
查看>>
c# aop讲解
查看>>
iterable与iterator
查看>>
返回顶部(动画)
查看>>