专栏首页ypw判断一个序列是否有序(升序或者降序)

判断一个序列是否有序(升序或者降序)

思路:用两个数组来分别存贮排序过的升序和降序的序列,然后用一个for循环来进行比较,如果相等,那么就num1,num2分别++;然后如果num1 == N 或 者 num2 == N 就输出sort,否则就输出unsort

#include<bits/stdc++.h>
#define maxn 55
using namespace std;

int a[maxn];
int b[maxn];
int c[maxn];

int cmpp(int x,int y){//函数使从大到小排列
   return  x > y;
}

int main(){
   int N;
	 cin>>N;
	 for(int i=0;i<N;i++){//输入并赋给两个数组用来排序
	 cin>>a[i];
	 b[i] = a[i];
	 c[i] = a[i];
	 }
	 sort(b,b+N);//自身从小到大排序
   //for(int i=0;i<N;i++)
     //cout<<b[i]<<" ";
     //cout<<endl;
	 sort(c,c+N,cmpp);//自身从大到小排序
  // for(int i=0;i<N;i++)
     //cout<<c[i]<<" ";
    // cout<<endl;

	 int num1 = 0;
   int num2 = 0;
	 for(int i=0;i<N;i++){//判断是否存在N个序列一样的数
	  if(a[i] == b[i])
      num1++;//若从小到大,num1++
     if(a[i] == c[i])
      num2++;//一样
   }
	 if(num2 == N || num1 == N) cout<<"sorted"<<endl;//说明是有序的
   else
     cout<<"unsorted"<<endl;//否则输出无序

   return 0;
}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 武汉工程大学2020GPLT选拔赛(重现赛)详细代码讲解

    杨鹏伟
  • Minesweeper(蓝桥杯)

    然后就想着更好的方法嘛,就是给雷区标记,然后每个区的贡献值都是周围八个区的贡献值叠加。边输入边更新就能得到答案!

    杨鹏伟
  • 回溯法求组合问题

    杨鹏伟
  • 武汉工程大学2020GPLT选拔赛(重现赛)详细代码讲解

    杨鹏伟
  • CF910A The Way to Home SPFA(队列优化)

    一只青蛙现在在一个数轴上,它现在要从点 111 跳到点 nnn ,它每次可以向右跳不超过 ddd 个单位。比如,它可以从点 xxx 跳到点 x+ax+ax+a ...

    用户2965768
  • HDOJ-1711(kmp算法)

    Given two sequences of numbers : a[1], a[2], … , a[N], and b[1], b[2], … , b[M] ...

    dejavu1zz
  • 图像处理卷积算法实现

      今天心血来潮,想把传统的卷积算法实现一份不采用各种加速方式,仅优化算法逻辑的纯净版本。 写完发现性能还可以,特发出来分享之,若有博友在此基础上,进行了再次优...

    cpuimage
  • 5971 打击犯罪

    题目描述 Description 某个地区有n(n<=1000)个犯罪团伙,当地警方按照他们的危险程度由高到低给他们编号为1-n,他们有些团伙之间有直接联系,但...

    attack
  • 搜索专题

    POJ  Best Sequence http://poj.org/problem?id=1699 题意:给你n个字符窜,求其所能拼接的最短长度。 分析:预处理...

    用户1624346
  • 浙大版《C语言程序设计(第3版)》题目集 练习5-3 数字金字塔

    其中n是用户传入的参数,为[1, 9]的正整数。要求函数按照如样例所示的格式打印出n行数字金字塔。注意每个数字后面跟一个空格。

    C you again 的博客

扫码关注云+社区

领取腾讯云代金券