首页 > 试题广场 >

有序序列判断

[编程题]有序序列判断
  • 热度指数:50493 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
输入一个整数序列,判断是否是有序序列,有序,指序列中的整数从小到大排序或者从大到小排序(相同元素也视为有序)。

数据范围: 序列中的值都满足

输入描述:
第一行输入一个整数N(3≤N≤50)。
第二行输入N个整数,用空格分隔N个整数。


输出描述:
输出为一行,如果序列有序输出sorted,否则输出unsorted。
示例1

输入

5
1 6 9 22 30

输出

sorted
示例2

输入

5
3 4 7 2 10

输出

unsorted
示例3

输入

5
1 1 1 1 1

输出

sorted
import java.util.Scanner;
import java.util.Arrays;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int n = in.nextInt();
        int[] nums = new int[n];

        for (int i = 0; i < n; i++) {
            nums[i] = in.nextInt();
        }

        int count1 = check1(nums, n);
        int count2 = check2(nums, n);

        if (count1 == n - 1 || count2 == n - 1) {
            System.out.println("sorted");
        } else {
            System.out.println("unsorted");
        }
    }
    //降序或相等的情况
    public static int check1(int[] nums, int n) {
        int count1 = 0;
        for (int i = 0; i < n - 1; i++) {
            if (nums[i] >= nums[i + 1]) {
                count1++;
            } else {
                count1--;
            }
        }
        return count1;
    }
    //升序情况
    public static int check2(int[] nums, int n) {
        int count2 = 0;
        for (int i = 0; i < n - 1; i++) {
            if (nums[i] < nums[i + 1]) {
                count2++;
            } else {
                count2--;
            }
        }
        return count2;
    }
}

发表于 2024-08-27 13:40:10 回复(0)
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        while (in.hasNextInt()) {
            int a = in.nextInt();
            int flag = 1;
            int n = in.nextInt();
            for (int i  = 0; i < a-1; i++) {
                int temp = in.nextInt();
                if(temp>n){
                    flag++;
                } else {
                    flag--;
                }
                n = temp;
            }
            System.out.print(flag==a || flag==-a+2?"sorted":"unsorted");
        }
    }
}
发表于 2024-05-20 20:12:06 回复(0)
import java.util.Scanner;
import java.util.Arrays;
import java.util.Collections;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            int a = in.nextInt();
            int[] num = new int[a];
            for (int i = 0; i < a; i++) {
                num[i] = in.nextInt();
            }
            int[] cNum1 = Arrays.copyOf(num, num.length);
            Arrays.sort(cNum1);
            int[] cNum2 = Arrays.copyOf(cNum1, cNum1.length);
            for(int i =0;i<cNum2.length/2;i++) {
                int  tmp =cNum2[i];
                cNum2[i]=cNum2[cNum2.length-1-i];
                cNum2[cNum2.length-1-i]=tmp;
            }
            if(Arrays.equals(num, cNum1) || Arrays.equals(num, cNum2)) {
                System.out.println("sorted");
            } else {
                System.out.println("unsorted");
            }
        }
    }
}

编辑于 2024-03-02 11:51:14 回复(0)
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        // 注意 hasNext 和 hasNextLine 的区别
        while (in.hasNextInt()) { // 注意 while 处理多个 case
            int N = in.nextInt();
            int p1 = 1;
            int p2 = 100;
            boolean flag1 = true;//升序
            boolean flag2 = true;//降序
            for(int i=0;i<N;i++){
                int v = in.nextInt();
                if(flag1 && v<p1){
                    flag1=false;
                }
                if(flag2 &&v>p2){//降序
                    flag2=false;
                }
                p1=p2=v;
            }
            System.out.println((flag1||flag2)?"sorted":"unsorted");
        }
    }
}
发表于 2023-04-23 09:30:16 回复(0)
import java.util.*;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        int a=in.nextInt();
        int[] arrA=new int[a];
        int[] arrB=new int[a];
        int countA=0;
        int countB=0;
        for(int i=0;i<arrA.length;i++){
            arrA[i]=in.nextInt();
        }
        for(int i=0;i<arrA.length;i++){
            arrB[i]=arrA[i];
        }
        Arrays.sort(arrB);
        for(int i=0;i<arrA.length;i++){
            if(arrA[i]==arrB[i]){
                countA++;
            }
            if(arrA[i]==arrB[arrA.length-i-1]){
                countB++;
            }
        }
        if(countA==a||countB==a){
            System.out.print("sorted");
        }else{
            System.out.print("unsorted");
        }
    }
}

发表于 2022-11-27 14:48:06 回复(0)
import java.util.*;

public class Main{
    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        List<Integer> list1=new ArrayList<>();
        for(int i=0;i<n;i++)
            list1.add(sc.nextInt());
        List<Integer> list2=new ArrayList<>();
        for(Integer num:list1)
            list2.add(num);
        if(list1.get(0)>list1.get(list1.size()-1)) Collections.sort(list1,Comparator.reverseOrder());
        else Collections.sort(list1);
        String type="";
        for(int i=0;i<n;i++){
            if(list1.get(i)!=list2.get(i)){
                type="un";
                break;
            }
        }
        System.out.printf("%ssorted",type);
    }
}

发表于 2022-08-11 21:25:26 回复(0)
import java.util.*;
public class Main {
    //方法:冒泡排序(从小到大顺序)
    public static int[] maopao1(int[] arr) {
        int temp = 0;
        for (int i = 0; i < arr.length - 1; i++) {
            for (int j = 0; j < arr.length - 1 - i; j++) {
                if (arr[j] > arr[j + 1]) {
                    temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
        return arr;
    }
    //方法:冒泡排序(从大到小顺序)
    public static int[] maopao2(int[] arr) {
        int temp = 0;
        for (int i = 0; i < arr.length - 1; i++) {
            for (int j = 0; j < arr.length - 1 - i; j++) {
                if (arr[j] < arr[j + 1]) {
                    temp = arr[j];
                    arr[j] = arr[j + 1];
                    arr[j + 1] = temp;
                }
            }
        }
        return arr;
    }
    //主程序:输入数组,调用冒泡,输出
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        boolean q = true;
        int[] arr = new int[n];  //原数组
        int[] arrmin = new int[n];//复制原数组,准备调用方法1
        int[] arrmax = new int[n];//复制原数组,准备调用方法2

        for (int i = 0; i < n; i++) {
            arr[i] = sc.nextInt();
            arrmin[i] = arr[i];
            arrmax[i] = arr[i];
        }
        maopao1(arrmin);//调用冒泡后获得有序数组(小到大)
        maopao2(arrmax);//调用冒泡后获得有序数组(大到小)
        
        //【Arrays.equals(数组1,数组2)】 可直接用来比较两个数组
        if (Arrays.equals(arr, arrmin)) {
            System.out.print("sorted");
        } else  {
            if (Arrays.equals(arr, arrmax)) {
                System.out.print("sorted");
            } else {
                System.out.print("unsorted");
            }
        }
    }
}

发表于 2022-07-11 15:08:58 回复(0)
import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while(scanner.hasNext()){
            int n = scanner.nextInt();
            //要输入数据的数组
            List<Integer> inputList = new ArrayList<>();
            //与输入数组进行判断的数组
            List<Integer> toJudgeSortList = new ArrayList<>();
            //用来判断是否有序
            //boolean toJudgeSort = false;
            //用来输入正常数据
            for(int i = 0; i < n;i++){
                inputList.add(scanner.nextInt());
            }
            //将输入的正常数据复制一份进去,随后进行排序,最后判断是否有序
            for(int j = 0;j < inputList.size();j++){
                toJudgeSortList.add(inputList.get(j));
            }
            Collections.sort(toJudgeSortList);
            //判断是否有序
            //首先先正序排序后进行判断,正确则有序,否则进行逆序后再判断
            if(inputList.equals(toJudgeSortList)){
                System.out.println("sorted");
            }else{
                //逆序排序后进行判断,正确则有序,否则无序
                Collections.reverse(toJudgeSortList);
                if(inputList.equals(toJudgeSortList)){
                    System.out.println("sorted");
                }else{
                    System.out.println("unsorted");
                }
            }
            /*for(int k = 0;k < inputList.size();k++){
                //正序&&逆序
                if(toJudgeSortList.get(k) != inputList.get(k) && toJudgeSortList.get(n - k - 1) != inputList.get(k)){
                    toJudgeSort = false;
                    break;
                }
            }
            //输出
            if(toJudgeSort){
                System.out.println("unsorted");
            }else{
                System.out.println("sorted");
            }*/
        }
    }
}

发表于 2022-06-30 11:42:40 回复(0)
import java.util.*;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();   //两个正整数n,m
        int a[] = new int[n];
        int b[] = new int[n];
        int x = 0;
        for(int i = 0;i<n;i++){
            a[i] = sc.nextInt();

        }
        for(int i = 0;i<n;i++){
            b[i] = a[i];

        }
        Arrays.sort(b);
        for(int i = 0;i<n;i++){
            if(a[i]!=b[i]){
                x = x+1;
            }
        }
        if(x>0){
            System.out.printf("unsorted");
        }
        else{
            System.out.printf("sorted");
        }

    }
}
//只能判断正向有序

发表于 2022-03-15 01:45:46 回复(0)
import java.util.*;

public class Main{
    public static void main(String[] args){
        Scanner input=new Scanner(System.in);
        
        int n=input.nextInt();
        int[] a=new int[n];
        int[] b=new int[n];
        
        for(int i=0;i<n;i++){
            a[i]=input.nextInt();
            b[i]=a[i];
        }
        
        Arrays.sort(a);
        
        int[] c=new int[n];
        
        for(int i=0;i<a.length;i++){    //将排序的a反序,用来判断降序的数组
            c[i]=a[a.length-1-i];
        }
        
        if(Arrays.equals(a, b) || Arrays.equals(c,b)){
            System.out.println("sorted");
        }
        else
            System.out.println("unsorted");
        
        
    }
}

发表于 2021-10-31 16:42:36 回复(0)
import java.io.*;

public class Main{
    public static void main(String[] args) throws IOException {
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
        int number = Integer.parseInt(bufferedReader.readLine());
        String[] nums = bufferedReader.readLine().split(" ");
        int count = 0;
        int count2 = 0;
        int oneNum = Integer.parseInt(nums[0]);
        for (int i = 1; i < nums.length; i++) {
            int num = Integer.parseInt(nums[i]);
            if (oneNum <= num){
                count++;
            }else if(oneNum >= num){
                count2++;
            }
            oneNum=num;
        }
        if (count==number-1 || count2==number-1){
            System.out.println("sorted");
        }else{
            System.out.println("unsorted");
        }
    }
}

发表于 2021-10-28 00:01:37 回复(0)
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Scanner;

public class Main {

    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        List<Integer> list = new ArrayList<>();
        int n = sc.nextInt();
        for (int i = 0; i < n; i++) {
            list.add(sc.nextInt());
        }
        List<Integer> newList = new ArrayList<>();
        for (int i = 0; i < list.size(); i++) {
            newList.add(list.get(i));
        }
        Collections.sort(list);
        boolean bool = true;
        for (int i = 0; i < list.size(); i++) {
            if (newList.get(i) != list.get(i) && newList.get(n - i - 1) != list.get(i)) {
                bool = false;
                break;
            }
        }
        if (bool) {
            System.out.println("sorted");
        } else {
            System.out.println("unsorted");
        }
    }
}

发表于 2021-07-14 18:33:04 回复(0)
import java.io.*;
public class Main
{
    public static void main(String args[])throws IOException{
        BufferedReader bf=new BufferedReader(new InputStreamReader(System.in));
        String s=bf.readLine();
        int n=Integer.parseInt(s);
        String str[]=bf.readLine().split(" ");
        int flag1=0,flag2=1;
        for(int i=0;i<n-1;i++)
        {
            int x=Integer.parseInt(str[i]);
            int m=Integer.parseInt(str[i+1]);
            if(x>m)
                flag1=1;//都为降序,和flag2一样
            else
                flag2=0;//都为升序,和flag1一样
        }
        if(flag1==flag2)
            System.out.println("sorted");
        else
            System.out.println("unsorted");
    }
}


发表于 2021-04-24 17:03:14 回复(0)
import java.util.Scanner;

public class Main{
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        while (sc.hasNext()) {
            int n = sc.nextInt();
            int pre = sc.nextInt();
            int flag = 0;
            boolean judge = true;
            for (int i = 1; i < n; i++) {
                int cur = sc.nextInt();
                if (cur - pre >= 0 && flag>=0){
                    flag = 1;
                }else if(cur - pre <= 0 && flag<=0){
                    flag = -1;
                }else{
                    judge = false;
                }
                pre = cur;
            }
            if (judge){
                System.out.println("sorted");
            }else {
                System.out.println("unsorted");
            }
        }
    }
}


发表于 2020-09-26 14:00:41 回复(0)

import java.io.*;

public class Main {
    public static void main(String []args)throws IOException {
        BufferedReader s=new BufferedReader(new InputStreamReader(System.in));
        int a=Integer.parseInt(s.readLine());
        String []b=s.readLine().split(" ");
        int []c= new int[a];
        int d=0;
        int e=0;
        for(int i=0;i<a;i++) {
            c[i]=Integer.parseInt(b[i]);
        }
        for(int i=0;i<a;i++) {
            for(int j=i+1;j<a;j++) {
                if(c[i]<=c[j]) {
                    d=1;
                }else {
                    e=1;
                }
            }
        }
        if(d==1&&e==1) {
            System.out.println("unsorted");
        }else {
            System.out.println("sorted");
        }
        
    }
}

发表于 2020-08-30 21:19:55 回复(0)
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner in = new Scanner(System.in);
        boolean c = false;
        boolean d = false;
        int n = in.nextInt();
        int [] a = new int[n];
        for(int i=0;i<n;i++){
            a[i] = in.nextInt();
        }
        for(int i=0;i<n-1;i++){
            if(a[i] == Math.min(a[i], a[i + 1])){       //判断升序
                c = true;
            }else {
                c = false;
                break;
            }
        }
        for(int i=0;i<n-1;i++){
            if (a[i] == Math.max(a[i], a[i + 1])){       //判断降序
                d = true;
            }else{
                d = false;
                break;
            }
        }
        if(c || d){
            System.out.println("sorted");
        }else{
            System.out.println("unsorted");
        }
    }
}

发表于 2020-07-03 20:34:17 回复(0)
import java.util.*;
public class Main
{
    public static void main(String [] args)
    {
        Scanner sc=new Scanner(System.in);
        while(sc.hasNextInt())
        {
            int n=sc.nextInt();
            int [] arr=new int[n];
            for(int i=0;i<n;i++)
            {
                arr[i]=sc.nextInt();
            }
            int count=0;
            int count2=0;
            for(int i=0;i<n-1;i++)
            {
                int sub=arr[i+1]-arr[i];
                if(sub>=0)
                {
                    count++;
                }
                if(sub<=0)
                {
                    count2++;
                }
            }
            if(count==(n-1)||count2==(n-1))
            {
                System.out.println("sorted");
            }
            else
            {
                System.out.println("unsorted");
            }
        }
    }
}
发表于 2020-04-12 13:54:53 回复(0)