zoukankan      html  css  js  c++  java
  • pat每日刷题计划--day72

    归并排序模板

    mergeSort是归并排序,merge负责将两组数组合并

    需要注意的是,在新的数组往a里面赋值的过程中,不一定是从0开始赋值的嗷。因为在归并中两个数组占位连续的,真实的起始位置是l1(因为中途变了,要有一个变量标记)

    while里面别忘了l1,l2++

    #include<stdio.h>
    #include<string.h>
    #include<iostream>
    using namespace std;
    void merge(int a[],int l1,int r1,int l2,int r2)
    {
        int temp[1000];
        int num=0;
        int start=l1;
        while(l1<=r1 && l2<=r2)
        {
            if(a[l1]<=a[l2])
                temp[num++]=a[l1++];
            else
                temp[num++]=a[l2++];
        }
        while(l1<=r1)
            temp[num++]=a[l1++];
        while(l2<=r2)
            temp[num++]=a[l2++];
        for(int i=0;i<num;i++)
            a[start+i]=temp[i];
    }
    void mergeSort(int a[],int left,int right)
    {
        if(left==right) return;
        int mid=(left+right)/2;
        if(left==right) return;
        mergeSort(a,left,mid);
        mergeSort(a,mid+1,right);
        merge(a,left,mid,mid+1,right);
    }
    int main()
    {
        int a[10]={66,12,33,57,64,27,18};
        mergeSort(a,0,6);
        for(int i=0;i<=6;i++)
            printf("%d ",a[i]);
        return 0;
    }
    View Code
    时间才能证明一切,选好了就尽力去做吧!
  • 相关阅读:
    防火墙(Iptables NAT)
    zookeeper-分布式协调技术的搭建
    Cobbler 自动安装 配置
    GPG非对称加密
    服务管理--Nginx
    NTP时间服务器
    Javascript-数据类型、类型转换
    移动端计算页面尺寸
    javascript 给关键字加链接
    JS三元运算符
  • 原文地址:https://www.cnblogs.com/tingxilin/p/12247295.html
Copyright © 2011-2022 走看看