交叉排序

mac2022-06-30  24

交叉排序

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; }

转载于:https://www.cnblogs.com/CCCrunner/p/6444626.html

最新回复(0)