被排序?检查数组是否在Java中按升序或降序排序

朱丽兹·朱利奥

有人可以帮助我检查我的代码是否正确,或者可以帮助我知道是否有其他方法可以解决此问题,我试图检查数组是按升序还是降序返回,否则返回1,然后返回0;首先,我创建了一些用于按升序和降序对数组进行排序的方法,以及另一种用于减少数组的方法,然后我使用这些方法与原始数组(如果已排序)进行比较。我使用下面的代码:

public class IsSorted {

public static void main(String[] args){
    int[] list ={4,3,2,1};
    System.out.println(isSorted(list));

}

public static int isSorted(int[] a){

    if(a.length==0){
        return 1;
    }
    if(a.length==1){
        return 1;
    }

    int[] holdingArray=new int[a.length];

    for (int i =0; i<a.length; i++){
        holdingArray[i]=a[i];
    }


    int[] virtualIncreasedArray= new int[holdingArray.length];
    int[] virtualDecreasedArray= new int[holdingArray.length];
    sortIncrease(holdingArray);

    for(int i=0; i<holdingArray.length;i++){
        virtualIncreasedArray[i]=holdingArray[i];
    }
    sortDecrease(holdingArray);

    for(int i=0; i<holdingArray.length;i++){
        virtualDecreasedArray[i]=holdingArray[i];
    }

    //check if array is decreasing
    for(int i=0; i<virtualDecreasedArray.length;i++){
        if(virtualDecreasedArray[i]!=a[i]&&virtualIncreasedArray[i]!=a[i]){
            return 0;
        }

    }
    //check if array is increasing


    return 1;
}


static void sortIncrease(int[] a){
    for(int unsorted=a.length-1; unsorted>0; unsorted--){
        for(int i=0; i<unsorted;i++){
            if(a[i]>a[i+1]){
                swap(a,i,i+1);
            }
        }
    }
}


static void sortDecrease(int[] a){
    for(int unsorted=a.length-1; unsorted>0; unsorted--){
        for(int i=0; i<unsorted; i++){
            if(a[i]<a[i+1]){
                swap(a,i,i+1);
            }
        }
    }
}

static void swap(int[] a, int i, int j){
    if(i==j){
        return;
    }
    int temp = a[i];
    a[i]=a[j];
    a[j]=temp;
}

}

恶棍

由于您要求使用另一种方法来执行此操作,因此这里是另一种方法。

您可以做的是:

  • 根据前两个元素(如果存在)确定数组是(应该)是按升序还是降序排序
  • 然后,根据确定的内容检查阵列的其余部分是否有正确的顺序

例:

public static void main(String[] args) {
    int[] sortedAsc = { 1, 2, 3, 4, 5 };
    int[] sortedDesc = { 5, 4, 2, 1 };
    int[] unsortedArray = { 1, 8, 2, 4 };

    System.out.println(isSorted(sortedAsc));
    System.out.println(isSorted(sortedDesc));
    System.out.println(isSorted(unsortedArray));
}

public static boolean isSorted(int[] arr) {
    boolean isAscending = false;

    if (arr.length < 2) { // if the array has less than 2 elements, must be sorted
        return true;
    }

    if (arr[0] < arr[1]) { // do we think this array is sorted ascending?
        isAscending = true;
    }

    // check all elements of the array
    for (int i = 0; i < arr.length - 1; i++) {
        if (isAscending) {
            if (arr[i] > arr[i + 1]) {
                return false;
            }
        } else {
            if (arr[i] < arr[i + 1]) {
                return false;
            }
        }
    }
    return true;
}

输出:

true
true
false

您的代码的旁注:

  • 您的isSorted()方法肯定应该返回return ,而不是返回int(0,1)boolean
  • 毫无意义holdingArray

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在Dart中按升序和降序排序?

来自分类Dev

如何使用issorted函数检查数组是否按降序排序

来自分类Dev

如何使用issorted函数检查数组是否按降序排序

来自分类Dev

ACSL函数证明,可检查数组是按升序还是降序排序

来自分类Dev

快速排序,按降序排序,而不是升序

来自分类Dev

在Python中按字典的值按降序对其排序,其键按升序对字典进行排序

来自分类Dev

将Firebase数据按升序/降序排序

来自分类Dev

按顺序对结果进行排序(升序-降序)

来自分类Dev

按其值对 RecyclerView 升序/降序排序

来自分类Dev

如何让我的快速排序算法按升序和降序对数组进行排序?

来自分类Dev

C ++排序(升序,降序)整数数组

来自分类Dev

升序和降序排序

来自分类Dev

如何在Spring Data中按升序对一列进行排序,对降序进行排序?

来自分类Dev

检查int列表是否按升序排序的递归函数

来自分类Dev

Java流排序2变量升序/降序

来自分类Dev

Java排序价格值的升序和降序

来自分类Dev

按数字字段按降序或升序对数组Angular 7进行排序

来自分类Dev

Java中对象数组的降序选择排序

来自分类Dev

Java中对象数组的降序选择排序

来自分类Dev

使用Java中的可比较按两个字段升序和降序对对象列表进行排序

来自分类Dev

C ++:将数组的初始部分按升序排序,并将另一部分按降序排序

来自分类Dev

按定义的行块按升序和降序排序

来自分类Dev

python中的csv文件的“按x(升序)然后按y(降序)排序”

来自分类Dev

JS按特定字符串属性(不升序或降序)对objets排序数组

来自分类Dev

JS按特定字符串属性(不升序或降序)对objets排序数组

来自分类Dev

按升序和降序对字符串日期数组进行排序

来自分类Dev

冒泡排序C中的降序和升序不会排序

来自分类Dev

冒泡排序C中的降序和升序将不排序

来自分类Dev

如何从PHP中的Key按升序对数组进行排序?

Related 相关文章

  1. 1

    在Dart中按升序和降序排序?

  2. 2

    如何使用issorted函数检查数组是否按降序排序

  3. 3

    如何使用issorted函数检查数组是否按降序排序

  4. 4

    ACSL函数证明,可检查数组是按升序还是降序排序

  5. 5

    快速排序,按降序排序,而不是升序

  6. 6

    在Python中按字典的值按降序对其排序,其键按升序对字典进行排序

  7. 7

    将Firebase数据按升序/降序排序

  8. 8

    按顺序对结果进行排序(升序-降序)

  9. 9

    按其值对 RecyclerView 升序/降序排序

  10. 10

    如何让我的快速排序算法按升序和降序对数组进行排序?

  11. 11

    C ++排序(升序,降序)整数数组

  12. 12

    升序和降序排序

  13. 13

    如何在Spring Data中按升序对一列进行排序,对降序进行排序?

  14. 14

    检查int列表是否按升序排序的递归函数

  15. 15

    Java流排序2变量升序/降序

  16. 16

    Java排序价格值的升序和降序

  17. 17

    按数字字段按降序或升序对数组Angular 7进行排序

  18. 18

    Java中对象数组的降序选择排序

  19. 19

    Java中对象数组的降序选择排序

  20. 20

    使用Java中的可比较按两个字段升序和降序对对象列表进行排序

  21. 21

    C ++:将数组的初始部分按升序排序,并将另一部分按降序排序

  22. 22

    按定义的行块按升序和降序排序

  23. 23

    python中的csv文件的“按x(升序)然后按y(降序)排序”

  24. 24

    JS按特定字符串属性(不升序或降序)对objets排序数组

  25. 25

    JS按特定字符串属性(不升序或降序)对objets排序数组

  26. 26

    按升序和降序对字符串日期数组进行排序

  27. 27

    冒泡排序C中的降序和升序不会排序

  28. 28

    冒泡排序C中的降序和升序将不排序

  29. 29

    如何从PHP中的Key按升序对数组进行排序?

热门标签

归档