1. 冒泡排序
-
将最大值交换到最后面
比如对[4,3,1,2] 排序
三轮对比
function bubblingSort(ar) {
for (let i = 0; i < ar.length; i++) {
for (let j = 0; j < ar.length - i - 1; j++) {
// 前后元素进行比对,最大的元素被排到了最后面
if (ar[j] > ar[j + 1]) {
const temp = ar[j]; // 交换数据
ar[j] = ar[j + 1];
ar[j + 1] = temp;
}
}
}
}
内层循环保证数组中最大的数被移动到最后,外层再次循环,内层将没移动到最后面的大数移动到后面
- 将最小值交换到最前面
const arr = [3, 5, 1, 2, 10];
function sort(ar) {
const nextArr = ar;
//遍历第一层,外层每循环一次,就保证第i位置的元素为以及后面位置的最小值
for (let i = 0; i < nextArr.length; i++) {
// 将i后面的元素与i位置的元素依次对比
for (let j = i + 1; j < nextArr.length; j++) {
const ele = nextArr[i];
const item = nextArr[j];
// i位置的元素如果大于i后面位置的元素,则将小的元素放到i位置
if (ele > item) {
const container = ele;
nextArr[i] = nextArr[j];
nextArr[j] = container;
}
}
}
return nextArr;
}
const a = sort(arr);
console.info(a);
网友评论