判断数组的排序

判断一个数字数组的排序类型
考虑升序, 降序, 平序, 乱序四种情况

基本实现

       遍历整个数组, 记录相邻两个数字的比较结果保存到升序和降序的计数器里并以此判断结果

optimization 算法性能优化

  1. 根据条件提前退出循环
  2. 用–循环, 避免重复计算循环边界
  3. 减少变量的声明
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
const testArr = [1, 2, 3]

function getArrOrder (arr) {
let ascendentCount = 0
let decendentCount = 0
let result = ''
for (let i = arr.length - 1; i > 0; i--) {
if (arr[i] > arr[i - 1]) {
if (decendentCount) {
return '乱序'
}
ascendentCount++
} else if (arr[i] < arr[i - 1]) {
if (ascendentCount) {
return '乱序'
}
decendentCount++
}
}
if (ascendentCount === 0 && decendentCount === 0) {
return '平序'
} else if (decendentCount === 0) {
return '升序'
} else {
return '降序'
}
}

console.log(getArrOrder(testArr))