代码拉取完成,页面将自动刷新
var arr = [1, 5, 9, 3, 2, 6, 8, 4]
var length = arr.length
for (var i = 0; i < length; i++) {
for (var j = i + 1; j < length; j++) {
if (arr[i] > arr[j]) {
;[arr[i], arr[j]] = [arr[j], arr[i]]
}
}
}
console.log('arr === ', arr)
找到一个基准点,然后将集合分成两部分,左边的小于基准点,右边的大于基准点
let testArr = [1, 5, 9, 3, 2, 6, 8, 4]
function sortFn(arr) {
let length = arr.length
if (length <= 1) {
return arr
}
let sortIndex = parseInt(length / 2)
let sortItem = arr.splice(sortIndex, 1)[0]
let leftArr = []
let rightArr = []
arr.forEach(item => {
if (item < sortItem) {
leftArr.push(item)
} else {
rightArr.push(item)
}
})
return [...sortFn(leftArr), ...sortFn([sortItem, ...rightArr])]
}
console.log('arr === ', sortFn(testArr))
寻找最小的数,将最小数的索引保存
var arr = [1, 5, 9, 3, 2, 6, 8, 4]
var length = arr.length
var minIndex
for (var i = 0; i < length; i++) {
minIndex = i
for (var j = i + 1; j < length; j++) {
if (arr[j] < arr[minIndex]) {
minIndex = j
}
}
;[arr[i], arr[minIndex]] = [arr[minIndex], arr[i]]
}
console.log('arr === ', arr)
类似摸扑克牌
var arr = [1, 5, 9, 3, 2, 6, 8, 4]
var length = arr.length
var preIndex, current
for (var i = 1; i < length; i++) {
preIndex = i - 1
current = arr[i]
while (preIndex >= 0 && arr[preIndex] > current) {
arr[preIndex + 1] = arr[preIndex]
preIndex--
}
arr[preIndex + 1] = current
}
console.log('arr === ', arr)
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。