交叉排序

 1 #include "stdafx.h"
 2
 3 #include <stdio.h>
 4 #include<iostream>
 5
 6 using namespace std;
 7
 8 #define length 100
 9
10 int arry[length] = { 0 };
11 int num;
12 char ch;
13 int cnt = 0;
14
15 int main(void)
16 {
17     while (1)
18     {
19         scanf_s("%d", &num);
20         ch = getchar();
21         arry[cnt++] = num;
22         if (ch == ‘\n‘)
23         {
24             break;
25         }
26     }
27     for (int i = 0; i < ((cnt-1) / 2) * 2 ; i++, i++)
28     {
29         for (int j = ((cnt - 1) / 2) * 2 - 2; j >= i; j--, j--)
30         {
31             if (arry[j]>arry[j + 2])
32             {
33                 int tmp;
34                 tmp = arry[j];
35                 arry[j] = arry[j + 2];
36                 arry[j + 2] = tmp;
37             }
38         }
39     }
40     for (int i = 1; i < (cnt - 1) + ((cnt - 1) % 2) - 1; i++, i++)
41     {
42         for (int j = (cnt - 1) + ((cnt - 1) % 2) - 3; j >= i; j--, j--)
43         {
44             if (arry[j]<arry[j + 2])
45             {
46                 int tmp;
47                 tmp = arry[j];
48                 arry[j] = arry[j + 2];
49                 arry[j + 2] = tmp;
50             }
51         }
52     }
53
54     for (int i = 0; i < cnt; i++)
55     {
56         cout << arry[i]<<‘ ‘;
57     }
58     cout << endl;
59     return 0;
60 }
时间: 2024-12-23 18:47:55

交叉排序的相关文章

数据结构之 内部排序---交叉排序(没啥特别的!!!)

交叉排序 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 <iostream> #include <string>

SDUT 1591-交叉排序(Arrays.sort)

交叉排序 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 java的Arrays类居然只有升序排序..sad import j

【数据结构与算法】内部排序之一:插入排序和希尔排序的N中实现(不断优化,附完整源码)

转载请注明出处:http://blog.csdn.net/ns_code/article/details/20043459   前言 本来想将所有的内部排序总结为一篇博文,但是随着研究的深入,还是放弃了这个念头,斟前酌后,还是觉得分开来写比较好,具体原因,看完本篇博文也就自然明了了. 本篇文章主要探讨插入排序和希尔排序,之所将二者放在一起,很明显,是因为希尔排序是建立在插入排序的基础之上的.     注:以下各排序算法的N种实现方法大部分都是我根据算法思想,自己写出来的,或者是参考其本身的经典实

排序算法一希尔排序

希尔排序(Shell Sort) 插入排序的一种.也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本. 希尔排序是非稳定排序算法. 1 class ShallSort { 2 public void sort() { 3 int[] arr = {1,2,5,1,4,2,12}; 4 5 //增量 6 int flag = arr.length; 7 while (flag>1){ 8 //获取增量间隔,递减 9 flag=flag/3+1; 10 //交叉排序:所有组交叉一起排序 11

Redis支持5种数据类型

Redis目前支持5种数据类型,分别是 String(字符串) List(列表) Hash(字典) Set(集合) Sorted Set(有序集合) Redis数据类型 1.字符串类型 SET key value                   设置key=value GET key                         或者键key对应的值 GETRANGE key start end          得到字符串的子字符串存放在一个键 GETSET key value    

转 sql 优化

1.关于SQL查询效率,100w数据,查询只要1秒,与您分享: 机器情况p4: 2.4内存: 1 Gos: windows 2003数据库: ms sql server 2000目的: 查询性能测试,比较两种查询的性能 SQL查询效率 step by step -- setp 1.-- 建表create table t_userinfo(userid int identity(1,1) primary key nonclustered,nick varchar(50) not null defa

SQL语句执行效率及分析(note)

1.关于SQL查询效率,100w数据,查询只要1秒,与您分享: 机器情况p4: 2.4内存: 1 Gos: windows 2003数据库: ms sql server 2000目的: 查询性能测试,比较两种查询的性能 SQL查询效率 step by step -- setp 1.-- 建表create table t_userinfo(userid int identity(1,1) primary key nonclustered,nick varchar(50) not null defa

Redis系列--4、Redis命令

键命令.字符串命令.哈希命令.列表命令.集合(有序集合)命令.服务器命令 一.Redis的键命令 S.N. 命令 & 描述 1 DEL key此命令删除键,如果存在 2 DUMP key 该命令返回存储在指定键的值的序列化版本. 3 EXISTS key 此命令检查该键是否存在. 4 EXPIRE key seconds指定键的过期时间 5 EXPIREAT key timestamp 指定的键过期时间.在这里,时间是在Unix时间戳格式 6 PEXPIRE key milliseconds 设

Redis常用数据类型介绍、使用场景及其操作命令

Redis常用数据类型介绍.使用场景及其操作命令 本文章同时也在cpper.info发布. Redis目前支持5种数据类型,分别是: 1.String(字符串) 2.List(列表) 3.Hash(字典) 4.Set(集合) 5.Sorted Set(有序集合) 下面就分别介绍这五种数据类型及其相应的操作命令. 1. String(字符串) String是简单的 key-value 键值对,value 不仅可以是 String,也可以是数字.String在redis内部存储默认就是一个字符串,被