• 交叉排序


    交叉排序

    Time Limit: 1000MS Memory limit: 32768K

    题目描述

    输入N个数,把所有奇数位置上的数从小到大排序,把偶数位置上的数从大到小排序。

    输入

    输入的第一行是一个正整数N(2<=N<=100)。
    第二行是N个用空格隔开的整数。

    输出

    输出只有一行N个数,是按要求排序后的序列,用空格隔开。

    示例输入

    6
    1 2 3 4 5 6

    示例输出

    1 6 3 4 5 2

    #include <stdio.h>
    #include <string.h>
    int string1[1000];
    int main()
    {
    int n,i,j,t,k=0,f=0;
    scanf("%d",&n);
    for(i=1;i<=n;i++)  //从1开始,方便查找
    {
    scanf("%d",&string1[i]);
    }
    for(i=1;i<n;i+=2)   //奇数位置上的数从小到大排序
    {
    for(j=1;j<=n-i-1;j+=2)
    {
    if(string1[j]>string1[j+2])
    {
    t = string1[j];
    string1[j] = string1[j+2];
    string1[j+2] = t; 
    }
    }
    }
    for(i=2;i<=n;i+=2)  //偶数位置上的数从大到小排序。
    {
    for(j=2;j<=n-i;j+=2)
    {
    if(string1[j]<string1[j+2])
    {
    t = string1[j];
    string1[j] = string1[j+2];
    string1[j+2] = t; 
    }
    }
    }
    for(i=1;i<n;i++)
    {
    printf("%d ",string1[i]);
    }
    printf("%d\n",string1[i]);




    return 0;
    }

  • 相关阅读:
    网址收藏
    Linux创建swap文件
    vim命令大全
    char * 和字符数组
    JSR 203终于要出来啦
    对象关系技术的探讨
    最近编码更流畅了
    孤独终止的地方,就是广场开始的地方......
    不要奢望.NET能够跨平台
    实现了HTTP多线程下载
  • 原文地址:https://www.cnblogs.com/CCCrunner/p/6444626.html
Copyright © 2020-2023  润新知