交叉排序
来源:互联网 发布:手机淘宝如何切换账号 编辑:程序博客网 时间:2024/05/01 11:26
交叉排序
Time Limit: 1000MS Memory limit: 32768K
题目描述
输入N个数,把所有奇数位置上的数从小到大排序,把偶数位置上的数从大到小排序。
输入
输入的第一行是一个正整数N(2<=N<=100)。
第二行是N个用空格隔开的整数。
第二行是N个用空格隔开的整数。
输出
输出只有一行N个数,是按要求排序后的序列,用空格隔开。
示例输入
61 2 3 4 5 6
示例输出
1 6 3 4 5 2
提示
来源
2011软件1-5班《程序设计基础》机试 tongjiantao
示例程序
- 提交
- 状态
#include <stdio.h>#include <stdlib.h>int main(){ int n,a[110],i,j,t; scanf("%d",&n); for(i=0; i<n; i++) scanf("%d",&a[i]); if(n%2==0) { for(i=0; i<=n-3; i=i+2) for(j=0; j<=n-i-3; j=j+2) if(a[j]>a[j+2]) { t=a[j]; a[j]=a[j+2]; a[j+2]=t; } for(i=1; i<=n-2; i=i+2) for(j=1; j<=n-i-2; j=j+2) if(a[j]<a[j+2]) { t=a[j]; a[j]=a[j+2]; a[j+2]=t; } } else { for(i=0; i<=n-2; i=i+2) for(j=0; j<=n-i-2; j=j+2) if(a[j]>a[j+2]) { t=a[j]; a[j]=a[j+2]; a[j+2]=t; } for(i=1; i<=n-3; i=i+2) for(j=1; j<=n-i-3; j=j+2) if(a[j]<a[j+2]) { t=a[j]; a[j]=a[j+2]; a[j+2]=t; } } for(i=0; i<n; i++) if(i==n-1) printf("%d\n",a[i]); else printf("%d ",a[i]); return 0;}
0 0
- 交叉排序
- 交叉排序
- 交叉排序
- 交叉排序
- 交叉排序
- 交叉排序
- 交叉排序
- 交叉排序
- 交叉排序
- 交叉--排序
- 交叉排序
- 交叉排序
- 交叉排序
- 交叉排序
- 交叉排序
- 交叉排序
- 交叉排序
- 交叉排序
- HDU 5742 It's All In The Mind 水题
- angularJS绑定数据中对标签转义的处理
- PHP中 D()和M()方法的区别
- gcc 内联汇编用法介绍
- 对抽象类和接口的理解
- 交叉排序
- CAFFE layers
- 图片选择方法、装置、图片处理方法和装置
- poj 2752 Seek the Name, Seek the Fame(kmp)
- Java并发编程:线程池的使用
- 十二、空白页
- H5实现win10日历效果
- 安全框架——Apache Shiro
- JavaWeb Servlet乱码处理(2)