最近复习算法,为了年后找工作做准备,看了看网上归并排序,只懂算法原理源码没有看懂,算了,还是根据原理手撸吧!!!

如果大家想了解其他两种牛掰的排序,请猛戳下面链接

快速排序

堆排序

归并排序复杂度O(nlogn)

public class MergeSort {public static int arr[] = {2,4,7,8,9,4,5,1,2,3,6,8,7,8,54,4,2,58,47,5,8,4,2,5};public static void main(String[] args) {sort(arr,0,arr.length-1);   //排序print();    //打印}//拆分public static void sort(int left,int right){if(left >= right)return;//递归终止条件,一个子数组只有一个或两个元素if(right-left==1){if(arr[left]>arr[right]){int t = arr[left];arr[left] = arr[right];arr[right] = t;}return;}//递归分解int mid = (left + right)/2;sort(arr,left,mid);sort(arr,mid+1,right);//合并merge(left,mid,right);}//合并public static void merge(int left,int mid,int right){int i = left;int j = mid+1;int k = 0;//开辟临时数组,合并两个有序子数组int temp[] = new int[right-left+1];while(i<=mid && j<=right){if(arr[i]<arr[j]){temp[k++] = arr[i++];}else{temp[k++] = arr[j++];}}while(i<=mid){temp[k++] = arr[i++];}while(j<=right){temp[k++] = arr[j++];}//将临时数组合并到原来数组中k = 0;for(i = left;i<=right;i++){arr[i] = temp[k++];}}/*** 打印*/public  static void print(){for(int a:arr){System.out.print(a+",");}System.out.println();}
}

自己手撸的印象确实比看网上或看书来的深刻

结束,拜拜

归并排序(JAVA版)相关推荐

  1. 经典十大排序算法(含升序降序,基数排序含负数排序)【Java版完整代码】【建议收藏系列】

    经典十大排序算法[Java版完整代码] 写在前面的话 十大排序算法对比 冒泡排序 快速排序 直接选择排序 堆排序 归并排序 插入排序 希尔排序 计数排序 桶排序 基数排序 完整测试类 写在前面的话   ...

  2. Java算法:牛客网Java版剑指Offer全套算法面试题目整理及电子档,Java算法与数据结构面试题,面试刷题、背题必备!牛客网剑指offer

    剑指offer(java版) 牛客网Java版剑指Offer全套题目67道 资源来源于网络 目录 1.二维数组中的查找 2.替换空格 3.从尾到头打印链表 4.重建二叉树 5.用两个栈实现队列 6.旋 ...

  3. 常见数据结构和算法实现(排序/查找/数组/链表/栈/队列/树/递归/海量数据处理/图/位图/Java版数据结构)

    常见数据结构和算法实现(排序/查找/数组/链表/栈/队列/树/递归/海量数据处理/图/位图/Java版数据结构) 数据结构和算法作为程序员的基本功,一定得稳扎稳打的学习,我们常见的框架底层就是各类数据 ...

  4. 数据结构与算法基础(java版)

    目录 数据结构与算法基础(java版) 1.1数据结构概述 1.2算法概述 2.1数组的基本使用 2.2 数组元素的添加 2.3数组元素的删除 2.4面向对象的数组 2.5查找算法之线性查找 2.6查 ...

  5. hmcl离线登陆_最好用的Java版启动器HMCL

    原标题:最好用的Java版启动器HMCL 推荐的启动器是什么了?就是 Hello Minecraft! Launcher 简称HMCL,这款启动器特色很多.一张图片简单说明!!! 支持离线登录代表了什 ...

  6. Twitter的分布式雪花算法 SnowFlake 每秒自增生成26个万个可排序的ID (Java版)

    分布式系统中,有一些需要使用全局唯一ID的场景,这种时候为了防止ID冲突可以使用36位的UUID,但是UUID有一些缺点,首先他相对比较长,另外UUID一般是无序的. 有些时候我们希望能使用一种简单一 ...

  7. 分布式主键解决方案----Twitter 雪花算法的原理(Java 版)

    SnowFlake 雪花算法 对于分布式系统环境,主键ID的设计很关键,什么自增intID那些是绝对不用的,比较早的时候,大部分系统都用UUID/GUID来作为主键,优点是方便又能解决问题,缺点是插入 ...

  8. 我的世界java下载1.13_Minecraft Java版 1.13.1-pre2 发布

    Minecraft Java 版 1.13.1-pre2 发布 Back from vacation, we're now trying to finalize 1.13.1 and get it t ...

  9. 我的世界java版不会玩_我的世界:五张MC趣图,Java版玩家永远不懂基岩版玩家的痛...

    <我的世界>1.17版本目前已经更新了8个快照版本,在玩家的期望中,Mojang总算是加入了新的洞穴--噪声洞穴(Noise Caves).虽然这属于洞穴与山崖更新的一大步,Java版玩家 ...

  10. 我的世界1.7.2 java_我的世界Java版1.7版本种子分享

    我的世界Java版的1.7版本中有哪些好的种子呢?下面就给大家带来我的世界Java版1.7版本种子分享,以供玩家参考. 1.seed:-6281771182477298288 x:74 y:68 z: ...

最新文章

  1. Gulp 之图片压缩合并
  2. C学习if条件判断和for循环
  3. 服务端构架干货:快节奏多人游戏的技术实现
  4. C/C++知识分享番外:如何申请一个腾讯地图用户Key?
  5. android开源2016_2016年开源领域的7大法律发展
  6. centos 编译安装 mysql_CentOS7编译安装MySQL5.7.24的教程详解
  7. 微软测试新工具:让Windows 10和Android设备文件同步更方便
  8. php银行学生助学贷款管理系统
  9. linux下登录不上oracle,Oracle特定用户登录失败案例 ORA-20001
  10. javascript中使用getMonth()获得月份比实际月份少一个月
  11. logstash mutate split日志切分
  12. img lazyload chrome
  13. 页面可视化搭建工具业界的轮子
  14. 基于JAVA游泳馆信息管理系统计算机毕业设计源码+系统+mysql数据库+lw文档+部署
  15. 如何使用 R 从 Internet 下载文件
  16. 线下店迎来“文艺复兴”,三只松鼠哪里寻“独门妙方”?
  17. Meth | git 常用命令
  18. vue支付宝html,Vue的H5页面唤起支付宝支付功能
  19. 申请实用新型专利有什么好处?及实用新型专利申请流程
  20. T11 Origin绘图模板

热门文章

  1. UNREFERENCED_PARAMETER()宏函数
  2. Log4j输出终端(Appender)详解
  3. 人类异常行为识别数据集汇总【转载】(附链接)
  4. 计算机科学与技术毕业论文选题【精选】
  5. 可以下载查看国家自然科学基金的申请文本
  6. 铁路计算机应用期刊级别,铁路单位评审高级职称可以发表哪些期刊呢?
  7. 初识Java ~ (二) # Java 中程序的执行流程,(万字长文)特别细~ 可收藏~
  8. 5个优质开玩笑代码脚本
  9. vue3全局变量定义使用
  10. html 5 压缩zip,Zip