算法与设计第二章根据伪代码写代码(归并算法)
代码:`public class MS {
public static void main(String[] args) { int array[] = { 2, 63, 25, 33, 24, 19, 39 };System.out.println("排序前:"+Arrays.toString(array));MargerSort(array, 0, array.length - 1);System.out.println("排序后:"+Arrays.toString(array));}private static void MargerSort(int[] A, int left, int right) { int mid;if (left < right) {mid = (left + right) / 2;MargerSort(A, left, mid);MargerSort(A, mid + 1, right);Merge(A, left, mid, right);}}private static void Merge(int[] A, int left, int mid, int right) { int a[] = new int[A.length];int i = left;int j = mid + 1;int k = 0;while (i <= mid && j <= right) {//左边小于中间,中间+1小于右边if (A[i] <= A[j]) {a[k] = A[i];//将原数组的第一位赋值给a第一位(k=0)位,不断继续赋值,直到elsek=k+1;i=i+1;} else {a[k] = A[j];//将原数组的第j位赋值给a的第k(在k=j的时候下一步则是A[i] > A[j],不再继续加,所以现在k=j)位k=k+1;j=j+1;}}//另一边的数据while (i <= mid) {a[k] = A[i];k=k+1;i=i+1;}while (j <= right) {a[k] = A[j];k=k+1;j=j+1;}k = 0;while (left <= right) {//已经排好序的赋值回去A[left] = a[k];k=k+1;left=left+1;}}
}
帮助理解
算法与设计第二章根据伪代码写代码(归并算法)相关推荐
- 超标量处理器设计——第二章_Cache
超标量处理器设计--第二章_Cache 参考<超标量处理器>姚永斌著 文章目录 超标量处理器设计--第二章_Cache Cache的一般设计 2.1.1 cache组成方式 2.1.2 C ...
- linux系统管理设计ppt,操作系统原理与Linux实例设计--第二章.ppt
操作系统原理与Linux实例设计--第二章.ppt 2.5.4 实时系统与实时任务调度 实时系统与实时任务 实时系统:能及时响应外部请求,并作出反应的系统. 是一个相对的概念. 是否周期执行来划分: ...
- 蓝桥杯算法竞赛系列第二章——深入理解重难点之递归(上)
铁汁们,递归(下)已经更新咯,欢迎铁汁们批评指正. 蓝桥杯算法竞赛系列第二章--深入理解重难点之递归(下)_安然无虞的博客-CSDN博客 目录 一.递归是什么? 二.如何理解"递归" ...
- 对下图所示的连通网络G,用克鲁斯卡尔(Kruskal)算法求G的最小生成树T,请写出在算法执行过程中,依次加入T的边集TE中的边。说明该算法的基本思想及贪心策略,并简要分析算法的时间复杂度
对下图所示的连通网络G,用克鲁斯卡尔(Kruskal)算法求G的最小生成树T,请写出在算法执行过程中,依次加入T的边集TE中的 边.说明该算法的基本思想及贪心策略,并简要分析算法的时间复杂度
- 《机器学习实战》第二章学习笔记:K-近邻算法(代码详解)
<机器学习实战>数据资料以及总代码可以去GitHub中下载: GitHub代码地址:https://github.com/yangshangqi/Machine-Learning-in-A ...
- 《信息安全工程师教程》学习笔记02(第二章 密码学基础与应用—DES算法)
第二章 密码学基础与应用 2.1 密码学的基本概念 1949年香农发表了<保密系统的通信理论> 1976年W.Diffie和M.Hellman提出公开密钥密码 1977年美国联邦政府颁布数 ...
- 计算机导论重写算法,计算机导论第二章.ppt
<计算机导论第二章.ppt>由会员分享,可在线阅读,更多相关<计算机导论第二章.ppt(66页珍藏版)>请在人人文库网上搜索. 1.1.第二章计算机系统的组成2.1四个功能部件 ...
- 《Alogrithms》算法学习笔记——第二章:分治
小编希望读者在阅读本篇文章之前是有一些简单编程算法的基础知识的,其中有小部分内容需要前导知识,不过多赘述,可以看其他文章. 文章目录 分治 2.0 什么是分治 2.1 乘法 2.2 递归关系 2.3 ...
- 机器学习(Hands on)第二章修正版完整代码
前言 最近尝试学习机器学习有关知识,随着Python版本的更新,<Hands-On Machine Learning with Scikit-Learn & TensorFlow> ...
最新文章
- centos mysql安装_mysql yum源安装
- CommunityServer数据部分名词解释
- Apache Beam发布第一个稳定版本
- android布局中画圆角矩形,Android 自定义View之圆角矩形轨迹图
- map中获取数组_如何从php多维数组中获取特定的键值?
- Canvas的基本用法
- 【Java从0到架构师】Maven - 依赖冲突、分模块构建项目
- 9025.计算机专业英语,计算机专业英语测试
- 用MySQl创建供应商标_建立一个供应商、零件数据库。其中供应商表S(Sno,Sname,Zip - 问答库...
- 2013杭州网赛 1001 hdu 4738 Caocao's Bridges(双连通分量割边/桥)
- Ubuntu下设置root用户
- 使用 IntraWeb (25) - 基本控件之 TIWRegion
- 大致看了下伍德里奇的《计量经济学导论》
- excel嵌入动态二维码 含中文
- 英语拼音怎么在计算机上拼出来的,英语拼音怎么写
- 国内多家视频下载网站关闭:或为暂避风头
- 计算机能使用硬盘吗,旧电脑的硬盘能直接插在新电脑上用吗?
- html流程svg动画,12款基于SVG的HTML5应用和动画
- 待定系数法求二阶常系数非齐次线性方程特解
- 【Error】解决ubuntu 18.04 dns故障