zoukankan      html  css  js  c++  java
  • 按要求获得序列

    题目:

    给定一个数组input[] ,如果数组长度n为奇数,则将数组中最大的元素放到 output[] 数组最中间的位置,如果数组长度n为偶数,则将数组中最大的元素放到 output[] 数组中间两个位置偏右的那个位置上,然后再按从大到小的顺序,依次在第一个位置的两边,按照一左一右的顺序,依次存放剩下的数。

    例如:input[] = {3, 6, 1, 9, 7}   output[] = {3, 7, 9, 6, 1};          

    input[] = {3, 6, 1, 9, 7, 8}    output[] = {1, 6, 8, 9, 7, 3}

    函数接口   void sort(int input[], int n, int output[])

    #include <iostream>
    using namespace std;
    
    void sort(int input[], int n, int output[]);
    int main()
    {
        int input[] = {3, 6, 1, 9, 7};
        int output[5];
        sort(input, 5, output);
        int input2[] = {3, 6, 1, 9, 7, 8};
        int output2[6];
        sort(input2, 6, output2);
        return 0;
    }
     
    void sort(int input[], int n, int output[])
    {
        //选择法排序(从大到小)
        for (int i=0; i<n; i++)
        {
            for (int j=i+1; j<n; j++)
            {
                if (input[i] < input[j])
                {
                    int tmp = input[i];
                    input[i] = input[j];
                    input[j] = tmp;
                }
            }
        }
        for (int i=0; i<n; i++)
        {
            cout << input[i] << ",";
        }
        cout << endl;
    
        int mid;//存放最大数的位置
        if (n%2 != 0)//奇数
        {
            mid = (n-1)/2;
        }
        else//偶数
        {
            mid = n/2;
        }
        int k=1;
        output[mid] = input[0];
        for (int i=1; i<n; i++)
        {
            k = (i+1)/2;
            if (i%2 != 0)
            {
                output[mid-k] = input[i];
            }
            else
            {
                output[mid+k] = input[i];
            }
        }
        for (int i=0; i<n; i++)
        {
            cout << output[i] << ",";
        }
        cout << endl;
    }
  • 相关阅读:
    插入排序
    JavaMail学习笔记
    汉诺塔问题
    使用Three.js绘制一个虚拟城市
    jquery flotcharts使用简介
    用CSS hack技术解决浏览器兼容性问题.
    IE条件注释详解.
    让IE6也认识!important
    代码重构(转)
    模版+数据分离渲染方式的设计与实现
  • 原文地址:https://www.cnblogs.com/hanxi/p/2719019.html
Copyright © 2011-2022 走看看