zoukankan      html  css  js  c++  java
  • 交叉排序

     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 == '
    ')
    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 }
     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(scanf("%d",&num)!=EOF)
    18     {
    19         cnt=0;
    20         arry[cnt++] = num;
    21         while (1)
    22         {
    23             scanf("%d", &num);
    24             ch = getchar();
    25             arry[cnt++] = num;
    26             if (ch == '
    ')
    27             {
    28                 break;
    29             }
    30         }
    31         for (int i = 0; i < ((cnt-1) / 2) * 2 ; i++, i++)
    32         {
    33             for (int j = ((cnt - 1) / 2) * 2 - 2; j >= i; j--, j--)
    34             {
    35                 if (arry[j]>arry[j + 2])
    36                 {
    37                     int tmp;
    38                     tmp = arry[j];
    39                     arry[j] = arry[j + 2];
    40                     arry[j + 2] = tmp;
    41                 }
    42             }
    43         }
    44         for (int m = 1; m < (cnt - 1) + ((cnt - 1) % 2) - 1; m++, m++)
    45         {
    46             for (int n = (cnt - 1) + ((cnt - 1) % 2) - 3; n >= m; n--, n--)
    47             {
    48                 if (arry[n]<arry[n + 2])
    49                 {
    50                     int tmp;
    51                     tmp = arry[n];
    52                     arry[n] = arry[n + 2];
    53                     arry[n + 2] = tmp;
    54                 }
    55             }
    56         }
    57 
    58         for (int k = 0; k < cnt; k++)
    59         {
    60             cout << arry[k]<<' ';
    61         }
    62         cout << endl;
    63     }
    64 
    65     return 0;
    66 }
  • 相关阅读:
    [知识点]计算几何I——基础知识与多边形面积
    [旧版][知识点]SPFA算法
    [旧版][知识点]A*搜索(启发式搜索)
    [知识点]线段树
    [小工具]ChemistryHelper
    [考试]20150314
    [知识点]Cantor展开
    [旧版][知识点]拓扑排序
    [无效]网络流之Dinic算法
    [SCOI2005]扫雷Mine
  • 原文地址:https://www.cnblogs.com/hhboboy/p/5376536.html
Copyright © 2011-2022 走看看