快速排序
快速排序的原理:通過一趟排序將要排序的數據分割成獨立的兩部分,其中一部分的所有數據都比另外一部分的所有數據都要小,然後再按此方法對這兩部分數據分別進行快速排序,整個排序過程可以遞歸進行,以此達到整個數據變成有序序列。
let arr = [85, 24, 63, 45, 77, 17, 31, 96, 50]
function quickSort (sortArr) {
if (sortArr.length <= 1) return sortArr // 如果篩選數組只有一個元素就直接return
let currentIndex = Math.round(sortArr.length - 1) // 生成數組隨機索引
let currentVal = sortArr.splice(currentIndex, 1)[0] // 找出隨機元素
let left = [], // 存放比當前元素小的值
right = [] // 存放比當前元素大的值
for (let i = 0;i < sortArr.length; i++) {
if (sortArr[i] > currentVal) {
right.push(sortArr[i])
} else {
left.push(sortArr[i])
}
}
//
return quickSort(left).concat([currentVal], quickSort(right))
}
let result = quickSort(arr)
冒泡排序
function sort (sortArr) {
for (let i = 0; i < sortArr.length; i++) {
for (let j = i + 1; j < sortArr.length; j++) {
if (sortArr[i] > sortArr[j]) {
let temp = sortArr[i]
sortArr[i] = sortArr[j]
sortArr[j] = temp
}
}
}
return sortArr
}
let arr = [85, 24, 63, 45, 77, 17, 31, 96, 50]
let result = sort(arr)
找出數組中最大的數
function findMax(arr) {
let maxVal = 0
arr.forEach(element => {
if (element > maxVal) {
maxVal = element
}
})
return maxVal
}
let arr = [85, 24, 63, 45, 77, 17, 31, 96, 50]
let result = findMax(arr)
翻轉字符串
function reverseString(str) {
return str.split('').reverse().join('')
}
let strings = '來吧來吧相約一九九八'
let result = reverseString(strings)