JAVA语言之归并排序

2023-05-16

package com.paixu;


public class guibing {

public static void main(String[] args) {
   int[] A=new int[]{5,3,4,2,1};
   A=guibing.mergeSort(A, 5);
  for(int i=0;i<5;i++){
  System.out.print(A[i]+" ");
  }
}


public static int[] mergeSort(int[] A, int n) {
        sort(A,0,n-1);
        return A;
    }

public static void sort(int[] A,int low,int high){
if(low<high){
int middle=(low+high)/2;
   //分左
sort(A,low,middle);
//分右
sort(A,middle+1,high);
//合并
merge(A,low,middle,high);
}
}
    
public static void merge(int[] A,int low,int middle,int high){
       int left=low;
       int right=middle+1;
       int aa=0;
       int[] ss=new int[high-low+1];
  //先将左右子数组其中一个数组排好序
       while(left<=middle && right<=high){
 if(A[left]<=A[right]){
 ss[aa++]=A[left++];
 }else{
 ss[aa++]=A[right++];
 }
    
  }
       //左子数组还有则自动排后面
  while(left<=middle){
  ss[aa]=A[left];
  left++;
  aa++;
  }
  //右子数组还有则自动排后面
  while(right<=high){
  ss[aa]=A[right];
  right++;
  aa++;
  }
       int temp=0;
       while((temp+low)<=high){
      A[temp+low]=ss[temp];
      temp++;
       }

    }
}

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JAVA语言之归并排序 的相关文章

随机推荐

  • struts2发送邮件

    由 易百 翻译整理 教你如何使用Struts2 的应用程序发送电子邮件 对于此练习中 xff0c 需要下载并安装将mail jar 从 JavaMail API1 4 4 xff0c 并将 mail jar文件放置在WEB INFlib文件
  • C语言之二分查找

    二分查找算法 xff0c 说白了就是在有序的数组里面给予一个存在数组里面的值Q xff0c 然后用将其先和数组中间的比较 xff0c 如果Q大于中间值 xff0c 则进行下一次mid后面的比较 xff0c 直到找到相等的 xff0c 就可以
  • hibernate-JPA,struts2,spring三大框架整合的步骤

    S2SH的整合 Hibernate JPA 43 Struts2 43 Spring 1 什么是S2SH的整合 Struts2 43 Spring 43 Hibernate 各个框架在S2SH中的作用 Spring 负责管理Struts2和
  • 广播电视相关信息系统安全 等级保护测评要求

    http www ahgd gov cn data upfile 1 files 1211 1 12111210240962 pdf
  • JAVA之希尔排序

    public class xier public static void main String args int A 61 new int 10 9 8 7 6 5 4 3 2 1 A 61 xier shellSort A 10 for
  • JAVA语言之快速排序

    package com paixu public class kuaipai 64 param args public static void main String args int a 61 new int 5 4 3 2 1 0 ku
  • 计算字符个数之机试

    题目描述 写出一个程序 xff0c 接受一个有字母和数字以及空格组成的字符串 xff0c 和一个字符 xff0c 然后输出输入字符串中含有该字符的个数 不区分大小写 输入描述 输入一个有字母和数字以及空格组成的字符串 xff0c 和一个字符
  • 字符串最后一个单词的长度之机试

    题目描述 计算字符串最后一个单词的长度 xff0c 单词以空格隔开 输入描述 一行字符串 输出描述 整数N xff0c 最后一个单词的长度 输入例子 hello world 输出例子 5 用String split String str 里
  • 明明的随机数之机试

    输入描述 输入多行 xff0c 先输入随机整数的个数 xff0c 在输入相应个数的整数 输出描述 返回多行 xff0c 处理后的结果 输入例子 11 10 20 40 32 67 40 20 89 300 400 15 输出例子 10 15
  • 字符串分隔之机试

    输入描述 连续输入字符串 输入2次 每个字符串长度小于100 输出描述 输出到长度为8的新字符串数组 输入例子 abc 123456789 输出例子 abc00000 12345678 90000000 思路 xff1a 重点在于字符串的长
  • 质数因子之机试

    功能 输入一个正整数 xff0c 按照从小到大的顺序输出它的所有质数的因子 xff08 如180的质数因子为2 2 3 3 5 xff09 详细描述 xff1a 函数接口说明 xff1a public String getResult lo
  • 取近似值之机试

    题目描述 写出一个程序 xff0c 接受一个浮点数值 xff0c 输出该数值的近似整数值 如果小数点后数值大于等于5 向上取整 xff1b 小于5 xff0c 则向下取整 输入描述 输入一个浮点数值 输出描述 输出该数值的近似整数值 输入例
  • 合并表记录之机试

    输入描述 先输入键值对的个数 然后输入成对的index和value值 xff0c 以空格隔开 输出描述 输出合并后的键值对 xff08 多行 xff09 输入例子 4 0 1 0 2 1 2 3 4 输出例子 0 3 1 2 3 4 思想
  • 提取不重复的整数之机试

    输入一个int型整数 xff0c 按照从右向左的阅读顺序 xff0c 返回一个不含重复数字的新的整数 输入描述 输入一个int型整数 输出描述 按照从右向左的阅读顺序 xff0c 返回一个不含重复数字的新的整数 输入例子 9876673 输
  • 链游Farmers World【农民世界】爆火,发布一个免费开源的辅助挂机脚本

    初衷 GameFi爆火 xff0c 农民世界 崛起 xff0c 浅谈链游辅助脚本开发思路 https blog csdn net CharlesSimonyi article details 121413962 上一篇文章中 xff0c 我
  • 确定两串乱序同构之程序员面试经典

    给定两个字符串 xff0c 请编写程序 xff0c 确定其中一个字符串的字符重新排列后 xff0c 能否变成另一个字符串 这里规定大小写为不同字符 xff0c 且考虑字符串重点空格 给定一个string stringA 和一个string
  • 基本字符串压缩之程序员面试经典

    利用字符重复出现的次数 xff0c 编写一个方法 xff0c 实现基本的字符串压缩功能 比如 xff0c 字符串 aabcccccaaa 经压缩会变成 a2b1c5a3 若压缩后的字符串没有变短 xff0c 则返回原先的字符串 给定一个st
  • 像素翻转之程序员面试经典

    有一副由NxN矩阵表示的图像 xff0c 这里每个像素用一个int表示 xff0c 请编写一个算法 xff0c 在不占用额外内存空间的情况下 即不使用缓存矩阵 xff0c 将图像顺时针旋转90度 给定一个NxN的矩阵 xff0c 和矩阵的阶
  • 清除行列之程序员面试经典

    请编写一个算法 xff0c 若MxN矩阵中某个元素为0 xff0c 则将其所在的行与列清零 给定一个MxN的int 矩阵 C 43 43 中为vector lt vector gt mat 和矩阵的阶数n xff0c 请返回完成操作后的in
  • JAVA语言之归并排序

    package com paixu public class guibing public static void main String args int A 61 new int 5 3 4 2 1 A 61 guibing merge