java实现归并排序算法

我不是女神ヾ 2022-07-21 00:04 277阅读 0赞

java实现的归并排序算法,非常清晰,希望分享出来共同交流学习!

  1. public class MergeSort{
  2. public static void main(String args[]){
  3. int []a = {
  4. 1,8,9,7,5,4,5,1,2,4,5,78,2};
  5. mergeSort(a);
  6. for(int i:a){
  7. System.out.print(i+",");
  8. }
  9. }
  10. public mergeSort(int[]a){
  11. sort(a,0,a.length-1);
  12. }
  13. public static void sort(int []a,int L ,int R){
  14. if(L<R){
  15. int M = (L+R)/2;
  16. sort(a,L,M);
  17. sort(a,M+1,R);
  18. merge(a,L,M,R);
  19. }
  20. }
  21. public static void merge(int[]a,int L,int M,int R){
  22. if(L<R){
  23. int start1=L;
  24. int end1=M;
  25. int start2=M+1;
  26. int end2=R;
  27. int [] temp = new int [R-L+1];
  28. int index = 0;
  29. int i=start1;
  30. int j=start2;
  31. while(i<=end1&&j<=end2){
  32. if(a[i]>=a[j]){
  33. temp[index++]=a[i++];
  34. }
  35. else{
  36. temp[index++]=a[j++];
  37. }
  38. }
  39. while(i<=end1){
  40. temp[index++]=a[i++];
  41. }
  42. while(j<=end2){
  43. temp[index++]=a[j++];
  44. }
  45. for(index=0;index<temp.length;index++){
  46. a[L+index]=temp[index];
  47. }
  48. }
  49. }
  50. }

发表评论

表情:
评论列表 (有 0 条评论,277人围观)

还没有评论,来说两句吧...

相关阅读

    相关 JAVA_算法_归并排序

    思想: 把一个大的数组细分成两个不同的数组, 循环这个过程。直到数组中的元素只有1或0个元素。 当数组中的只有两个元素时,比较两个元素的大小,前一个大于后一个就交换。 然

    相关 归并排序算法Java实现

    1、基本思想 归并排序(Merge)是将两个(或两个以上)有序表合并成一个新的有序表,即把待排序序列分为若干个子序列,每个子序列是有序的。然后再把有序子序列合并为整体有序序列

    相关 归并排序算法——java

    什么是归并排序算法? 答:归并排序算法就是利用分治思想将数组分成两个小组A,B,再将A,B小组各自分成两个小组,依次类推,直到分出来的小组只有一个数据时,可以认为这个小组已经

    相关 排序算法归并排序Java实现

    归并排序的思想是将局部有序的数组合并为一个大的有序数组,前提是需要保证局部数组有序,如果局部没有顺序,那么就拆分,再合并,最差的情况是,拆到两个数组都只有一个元素的时候,这时候