首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >判断一个序列是否有序(升序或者降序)

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

作者头像
杨鹏伟
发布2020-09-11 06:51:44
9480
发布2020-09-11 06:51:44
举报
文章被收录于专栏:ypwypw

思路:用两个数组来分别存贮排序过的升序和降序的序列,然后用一个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;
}
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-11-29 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档