js排序(冒泡排序,插入排序,快速排序,选择排序)

			
			let a = [1,43,3,3213,12,12,3,2,1,212,32]
			// 插入排序
			// function insertSort(arr){
			// 	if(arr.length<=1){return arr}
			// 	for(let i=0;i<arr.length;i++){
			// 		let temp = arr[i] //当前遍历的值
			// 		for(var j=i;j>0;j--){
			// 			if(temp>arr[j-1]){
			// 				break;
			// 			}
			// 			arr[j] = arr[j-1];
			// 		}
			// 		arr[j] = temp
			// 	}
			// 	return arr;
			// }
			// console.log( insertSort(a) )
			// 解析:遍历当前的值 挨个和前面的比较,如果比前面大,直接跳出循环,反之把当前的值和前面的数对调位子
			
			// 快速排序
			// function quickSort(arr){
			// 	let len = arr.length;
			// 	if(len<=1){return arr};
			// 	let left = [];
			// 	let right = [];
			// 	let index = Math.floor(len/2);
			// 	let provit = arr.splice(index,1);
			// 	console.log(provit)
			// 	for (let x of arr){
			// 		if(x<provit){
			// 			left.push(x)
			// 		}else{
			// 			right.push(x)
			// 		}
			// 	}
			// 	return quickSort(left).concat(provit,quickSort(right))
			// }
			// console.log( quickSort(a) )
			// 解析:截取数组中间的数作为比较的基数,循环每个数和基数比较,创建两个空数组(left,right),小于基数的值全部放到left数组,大于基数的值全部放到right数组,然后递归left和right数组,
			// 返回递归的left数组+基数+right数组。
			
			
			// 选择排序
			// function selectSort(arr){
			// 	let minIndex;
			// 	let tepm;
			// 	for(let i=0;i<arr.length;i++){
			// 		minIndex = i;
			// 		for(let j=i+1;j<arr.length;j++){
			// 			if(arr[j]<arr[minIndex]){
			//				//记录最小数的位子
			// 				minIndex = j;
			// 			}
			// 		}
			// 		temp = arr[minIndex];
			// 		arr[minIndex] = arr[i]
			// 		arr[i] = temp
			// 		console.log(`第${i}轮排序后的结果${arr}`)
			// 	}
			// 	console.log("最后结果",arr)
			// }
			// selectSort(a)
			// 解析:每一轮都选择找到最小的数放到最前面(下标i的位置)
			
			
			// 冒泡排序
			// function mpSort(arr){
			// 	let temp;
			// 	for(let i=0;i<arr.length;i++){
			// 		for(let j=0;j<arr.length-i-1;j++){
			// 			if(arr[j]>arr[j+1]){
			// 				temp = arr[j];
			// 				arr[j] = arr[j+1]
			// 				arr[j+1] = temp
			// 			}
			// 		}
			// 	}
			// 	console.log(arr)
			// }
			// mpSort(a)
			// 解析:每一轮把最大的数放到最后面
			
			
			

  

posted @ 2022-02-21 10:57  吴百万  阅读(68)  评论(0编辑  收藏  举报