数组的排序方式, 分基础冒泡排序,选择排序和插入排序,插入排序内存占用最少,处理大量数据更快
<script type="text/javascript">
// 冒泡排序
function bubbleSort(array) {
// 1.获取数组长度
let length = array.length;
// 2.循环,反向循环
for (let i = length - 1; i >= 0; i--) {
for (let j = 0; j < i; j++) {
// 如果j+1比j大,就换一下位置
if (array[j] > array[j + 1]) {
[array[j], array[j + 1]] = [array[j + 1], array[j]];
}
}
}
return array;
}
// 测试
console.log(bubbleSort([2, 7, 5, 9, 6, 4, 3, 8]));
</script>
<script type="text/javascript">
// 选择排序
function selectSort(array) {
let length = array.length;
for (let i = 0; i < length - 1; i++) {
let min = i;
for (j = min + 1; j < length; j++) {
// 如果min位置大于j位置的值,记录最小的位置
if (array[min] < array[j]) {
min = j;
}
}
if (min !== i) {
[array[min], array[i]] = [array[i], array[min]];
}
}
return array;
}
// 测试
console.log(selectSort([2, 7, 5, 9, 6, 4, 3, 8]));
</script>
<script type="text/javascript">
// 插入排序
function insertSort(array) {
let length = array.length;
for (let i = 1; i < length; i++) {
// temp记录选中的元素
let j = i;
let temp = array[i];
// 内层循环
while (j > 0 && array[j - 1] > temp) {
array[j] = array[j - 1];
j--;
}
// 将选中的j位置放temp
array[j] = temp;
}
return array;
}
// 测试
console.log(insertSort([2, 7, 5, 9, 6, 4, 3, 8]));
</script>