第一種(比較差) 第二種(利用冒泡排序) ...
第一種(比較差)
export default (arr) => {
// 如果數組長度小於2返回0
if (arr.length < 2) {
return 0
}
// 排序
arr.sort()
// 用它來保存相鄰元素的最大差值
let max = 0
for (let i = 0, len = arr.length - 1, tmp; i < len; i++) {
tmp = arr[i + 1] - arr[i]
if (tmp > max) {
max = tmp
}
}
return max
}
第二種(利用冒泡排序)
export default (arr) => {
if (arr.length < 2) {
return 0
}
let max = 0
let len = arr.length - 1
let space
for (let i = len, tmp; i > 0; i--) {
for (let j = 0; j < i; j++) {
tmp = arr[j]
if (tmp > arr[j + 1]) {
arr[j] = arr[j + 1]
arr[j + 1] = tmp
}
}
if (i < len) {
space = arr[i + 1] - arr[i]
if (space > max) {
max = space
}
}
}
// 處理最後沒有迴圈處理到的
return Math.max(max, arr[1] - arr[0])
}