选择排序
//选择排序
function fd(arr) {
/*
1、查找数组中最小值
2、最小值与当前数比较
2、交换位置,使最小值放在最前面
*/
// 最小函数
function findmin(arr, index) {
var min = arr[index]
for (var i = index + 1; i < arr.length; i++) {
if (min > arr[i]) {
min = arr[i]
}
}
return min
}
return (
function find(arr) {
var temp = ''
for (var i = 0; i < arr.length - 1; i++) {
var min = findmin(arr, i)
var index = arr.indexOf(min, i)
if (min < arr[i]) {
temp = arr[i]
arr[i] = min
arr[index] = temp
}
}
return arr
}
)(arr)
}
插入排序
// 插入排序
function insert(arr) {
/*
1、比较前后的数组
2、如果小于,将与前面排好序的序列一一计较
*/
var temo = ''
for (var i = 1; i < arr.length; i++) {
if (arr[i] < arr[i - 1]) {
temp = arr[i]
var index = i - 1
while (temp < arr[index] && index >= 0) {
arr[index + 1] = arr[index]
index--
}
arr[index + 1] = temp
}
}
return arr
}
快速排序
// 快速排序
function fast(arr) {
/*
1、选定基准项
2、把基准与其他书比较,小于放左边大于放右边
3、递归调用,直到数组项为1
4、将左右数组基准连接
*/
if (arr.length <= 1) {
return arr
}
var base = arr.splice(Math.floor(arr.length / 2), 1) //确定基准元素
var left = [],
right = []
for (var i = 0; i < arr.length; i++) {
if (arr[i] < base) {
left.push(arr[i])
} else {
right.push(arr[i])
}
}
return fast(left).concat(base, fast(right))
}