用java写一段判断数据序列稳定性的代码

ralph1年前 ⋅ 688 阅读
以下是用Java编写判断数据序列稳定性的代码:

```
public static boolean isStable(int[] arr) {
    // 创建一个二维数组,第一维存放数值,第二维存放下标
    int[][] pairs = new int[arr.length][2];

    // 初始化二维数组
    for (int i = 0; i < arr.length; i++) {
        pairs[i][0] = arr[i];
        pairs[i][1] = i;
    }

    // 对数值进行排序,使用冒泡排序
    for (int i = 0; i < pairs.length; i++) {
        for (int j = i + 1; j < pairs.length; j++) {
            if (pairs[i][0] > pairs[j][0]) {
                int tempValue = pairs[i][0];
                int tempIndex = pairs[i][1];
                pairs[i][0] = pairs[j][0];
                pairs[i][1] = pairs[j][1];
                pairs[j][0] = tempValue;
                pairs[j][1] = tempIndex;
            }
        }
    }

    // 判断排序后的数组是否稳定
    for (int i = 0; i < pairs.length - 1; i++) {
        if (pairs[i][0] == pairs[i + 1][0] && pairs[i][1] > pairs[i + 1][1]) {
            return false;
        }
    }

    return true;
}
```

该方法接收一个整型数组作为参数,首先将数组的元素以及对应下标存放在一个二维数组中,并对数值进行冒泡排序,排序后再遍历数组,如果排序后相邻元素数值相等且下标不符合稳定性的定义,则说明数组不稳定,否则说明数组稳定。

全部评论: 0

    相关推荐