插入排序从大到小插入可以,但是从小到大却说页面崩溃了?求解
以下代码没有注释的是排序成功的,注释的是排序失败的,我不知道为什么会这样,最下面的截图是网页出现的错误
// 插入排序思想:先准备一个空数组,接第一个数组的数据,然后后面的数据要跟这个新准备的数组一一进行比较
let arr = [1, 4, 21, 9, 6, 33, 55, 74];
let arr1 = [];
arr1.push(arr[0]);
for (let i = 1; i <= arr.length - 1; i++) {
let A = arr[i];
for (let i = arr1.length - 1; i >= 0; i--) {
if (A > arr1[i]) {
arr1.splice(i + 1, 0, A);
break;
}
if (i === 0) {
arr1.unshift(A);
}
}
// for (let i = 0; i <= arr1.length - 1; i++) {
// if (A < arr1[i]) {
// arr1.splice(i, 0, A);
// break;
// }
// if (i === arr1.length - 1) {
// arr1.push(A);
// }
// }
}
console.log(arr1);
array的排序不用自己写的。
let arr = [1, 4, 21, 9, 6, 33, 55, 74];
arr.sort((a,b)=>{return a-b});//升序
arr.sort((a,b)=>{return b-a});//降序