Skip to content

Latest commit

 

History

History
45 lines (33 loc) · 1.32 KB

检查数组是否已排序.md

File metadata and controls

45 lines (33 loc) · 1.32 KB

检查数组是否已排序

要检查一个数组是否已排序,可以遍历数组并比较相邻元素的大小。如果数组是升序排列的,则所有相邻元素都会大于等于前一个元素。如果数组是降序排列的,则所有相邻元素都会小于等于前一个元素。

这里我们使用常规 for 循环,实现效果如下:

const isSorted = (array) => {
  for (let i = 1; i < array.length; i++) {
    if (array[i] < array[i - 1]) return false
  }
  return true
}

上面函数检查的是数组升序排列。

如果要检查数组是否已降序排列,可以修改函数以检查相邻元素是否小于等于前一个元素,或者可以使用 JavaScript 内置的 Array.prototype.reverse 方法将数组反转后使用上述函数进行检查。

function isReverseSorted(array) {
  return isSorted(array.reverse())
}

需要注意,Array.prototype.reverse 方法会直接修改原数组,因此在使用完后可能需要再次反转数组以保持原有顺序。

使用示例:

let arr1 = [1, 2, 3, 4, 5]
let arr2 = [1, 2, 4, 3, 5]
let arr3 = [5, 4, 3, 2, 1]
let arr4 = [5, 4, 3, 1, 2]

isSorted(arr1) // true
isSorted(arr2) // false

isReverseSorted(arr3) // true
isReverseSorted(arr4) // false

// 改变原数组
arr3 // [1, 2, 3, 4, 5]
arr4 // [2, 1, 3, 4, 5]