zoukankan      html  css  js  c++  java
  • 九度OJ 1516 调整数组顺序使奇数位于偶数前面 -- 归并排序

    题目地址:http://ac.jobdu.com/problem.php?pid=1516

    题目描述:

    输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有的奇数位于数组的前半部分,所有的偶数位于位于数组的后半部分,并保证奇数和奇数,偶数和偶数之间的相对位置不变。

    输入:

    每个输入文件包含一组测试案例。
    对于每个测试案例,第一行输入一个n,代表该数组中数字的个数。
    接下来的一行输入n个整数。代表数组中的n个数。

    输出:

    对应每个测试案例,
    输入一行n个数字,代表调整后的数组。注意,数字和数字之间用一个空格隔开,最后一个数字后面没有空格。

    样例输入:
    5
    1 2 3 4 5
    
    样例输出:
    1 3 5 2 4
    #include <stdio.h>
    #include <stdlib.h>
     
    #define MAX 100000
     
    void Merge(int arr1[], int len1, int arr2[], int len2){
        int list[MAX];
        int i = 0;
        int j = 0;
        int k = 0;
     
        while (i < len1 && arr1[i] % 2){
            list[k++] = arr1[i++];
        }
        while (j < len2 && arr2[j] % 2){
            list[k++] = arr2[j++];
        }
        while (i < len1){
            list[k++] = arr1[i++];
        }
        while (j < len2){
            list[k++] = arr2[j++];
        }
        for (i=0; i<len1+len2; ++i){
            arr1[i] = list[i];
        }
     
    }
     
    void MergeSort(int arr[], int len){
        if (len > 1){
            int len1 = len / 2;
            int len2 = len - len1;
            MergeSort (arr, len1);
            MergeSort (arr+len1, len2);
            Merge (arr, len1, arr+len1, len2);
        }
    }
     
    int main(void){
        int n;
        int arr[MAX];
        int i, j;
        int cnt;
        int tmp;
     
        while (scanf ("%d", &n) != EOF){
            for (i=0; i<n; ++i){
                scanf ("%d", &arr[i]);
            }
            MergeSort (arr, n);
            for (i=0; i<n; ++i){
                printf ("%d", arr[i]);
                if (i != n-1)
                    putchar (' ');
            }
            putchar ('
    ');
        }
     
        return 0;
    }
    


    参考资料:归并排序

  • 相关阅读:
    openfire 介绍安装使用
    android rabbitMQ
    转:socket编程在windows和linux下的区别
    socklen_t在windows和linux平台下的头文件定义
    libevent入门教程
    libevent安装
    《RabbitMQ in action》
    RabbitMQ安装和配置
    node.js模块之http模块
    node.js模块之Buffer模块
  • 原文地址:https://www.cnblogs.com/liushaobo/p/4373817.html
Copyright © 2011-2022 走看看