#include<iostream>
#include<stdio.h>
#include<algorithm> #define N 10000
using namespace std; void Merge(int *b,int *a,int i,int m,int n)
{
int s = i;
int j,k;
//归并
for(j=m+,k=i;i<=m&&j<=n;k++)
{
if(b[i]<b[j]) a[k]=b[i++];
else a[k]=b[j++];
}
while(i<=m)
a[k++]=b[i++];
while(j<=n)
a[k++]=b[j++]; for(j=s;j<=n;j++) //将归并结果再次存入b数组
b[j]=a[j];
} void MergeSort(int * b,int *a,int s,int t)
{
if(s==t) b[s]=a[s]; //初始化b数组
else
{
int mid = (s+t)>>;
MergeSort(b,a,s,mid);
MergeSort(b,a,mid+,t);
Merge(b,a,s,mid,t); //将b数组[s,mid]与[mid+1,t]归并到a中的[s,t]中
}
} int a[N],b[N]; int main()
{
int n,i;
scanf("%d",&n);
for(i=;i<=n;i++)
{
scanf("%d",a+i);
}
MergeSort(b,a,,n);
for(i=;i<=n;i++)
{
printf("%d ",a[i]);
}
putchar();
return ;
}

手写归并排序(MergeSort)的更多相关文章

  1. c++后台开发面试常见知识点总结(六)算法手写

    链表倒转  leetcode-206 连续子数组最大和问题(和最大的连续子序列的和)   leetcode-53 输出字符串中最长的回文子串长度?  leetcode-5 一个字符串,求最长无重复子串 ...

  2. 【Win 10 应用开发】手写识别

    记得前面(忘了是哪天写的,反正是前些天,请用力点击这里观看)老周讲了一个14393新增的控件,可以很轻松地结合InkCanvas来完成涂鸦.其实,InkCanvas除了涂鸦外,另一个大用途是墨迹识别, ...

  3. JS / Egret 单笔手写识别、手势识别

    UnistrokeRecognizer 单笔手写识别.手势识别 UnistrokeRecognizer : https://github.com/RichLiu1023/UnistrokeRecogn ...

  4. 如何用卷积神经网络CNN识别手写数字集?

    前几天用CNN识别手写数字集,后来看到kaggle上有一个比赛是识别手写数字集的,已经进行了一年多了,目前有1179个有效提交,最高的是100%,我做了一下,用keras做的,一开始用最简单的MLP, ...

  5. 【转】机器学习教程 十四-利用tensorflow做手写数字识别

    模式识别领域应用机器学习的场景非常多,手写识别就是其中一种,最简单的数字识别是一个多类分类问题,我们借这个多类分类问题来介绍一下google最新开源的tensorflow框架,后面深度学习的内容都会基 ...

  6. caffe_手写数字识别Lenet模型理解

    这两天看了Lenet的模型理解,很简单的手写数字CNN网络,90年代美国用它来识别钞票,准确率还是很高的,所以它也是一个很经典的模型.而且学习这个模型也有助于我们理解更大的网络比如Imagenet等等 ...

  7. 使用神经网络来识别手写数字【译】(三)- 用Python代码实现

    实现我们分类数字的网络 好,让我们使用随机梯度下降和 MNIST训练数据来写一个程序来学习怎样识别手写数字. 我们用Python (2.7) 来实现.只有 74 行代码!我们需要的第一个东西是 MNI ...

  8. 手写原生ajax

    关于手写原生ajax重要不重要,各位道友自己揣摩吧, 本着学习才能进步,分享大家共同受益,自己也在自己博客里写一下 function createXMLHTTPRequest() { //1.创建XM ...

  9. springmvc 动态代理 JDK实现与模拟JDK纯手写实现。

    首先明白 动态代理和静态代理的区别: 静态代理:①持有被代理类的引用  ② 代理类一开始就被加载到内存中了(非常重要) 动态代理:JDK中的动态代理中的代理类是动态生成的.并且生成的动态代理类为$Pr ...

随机推荐

  1. truncate 函数用法示例

    --Oracle trunc()函数的用法 /**************日期********************/ select trunc(sysdate) from dual --2015- ...

  2. [算法练习] UVA-10010-Where's Waldorf?

    UVA Online Judge 题目10010 Where's Waldorf?  Waldorf在哪? 问题描述: 给出一个m行n列的字符矩阵(),和一个单词列表,在矩阵上匹配每个单词.在矩阵上匹 ...

  3. sublime安装 less环境

    工具的选择: mac-codekit simpless->跨平台 winless-windows  less.js下载:http://pan.baidu.com/s/1o60yTZ0   安装L ...

  4. Android对象类系列化public class User implements Parcelable

    package com.gaojinhua.android.activitymsg; import android.os.Parcel; import android.os.Parcelable; / ...

  5. Android 侧滑菜单的简单实现(SlidingMenu)二

    在上一篇博文中已经简单的实现了侧滑菜单,代码也很简单,就几行代码. 这篇文章依然讲侧滑菜单,与前一篇文章不同的是,这篇文章用不同的代码方式来实现侧滑菜单. 在前面的文章中已经用了在Activity中通 ...

  6. sqlsever 关于索引

    索引: 在sqlserver中,存储的单位最小是页,页是不可再分的B树:初衷是减少对磁盘的扫描次数,如果一个表或者索引没有使用B树(对于没有聚集索引的表是使用 Heap 堆进行存储的),那么查找一个数 ...

  7. centos6.5下磁盘创建交换分区

    1.创建磁盘交换分区 2.创建文件交换分区

  8. java新手笔记28 文件

    1.目录.文件 package com.yfs.javase; import java.io.File; public class FileDemo1 { /** * File 目录 文件 */ pu ...

  9. 【leetcode】12. Integer to Roman

    题目描述: Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range fr ...

  10. 【转】fread函数和fwrite函数

    1.函数功能   用来读写一个数据块. 2.一般调用形式   fread(buffer,size,count,fp);   fwrite(buffer,size,count,fp); 3.说明   ( ...