前端排序算法,冒泡排序、插入排序、快速排序、选择排序

1.冒泡排序思想:数组当前项和后一项比较,前比后大则交换位置,最大的数放后面。
以下代码实现:

function bubbleSort(arr){
     
				let temp = null;
				var len = arr.length;
				for(let i=0; i<len-1; i++){
     
					for(let j=0; j<len-1-i; j++){
     
						if(arr[j]>arr[j+1]){
     
							temp = arr[j];
							arr[j] = arr[j+1];
							arr[j+1] = temp;
						}
					}
				}
				return arr;
			}
			var newArr = bubbleSort([5,6,4,9,1,3,4,10,44,33,66]);
			console.log(newArr);

控制台输出:
前端排序算法,冒泡排序、插入排序、快速排序、选择排序_第1张图片
2.插入排序:抽扑克牌,和手里的扑克牌依次比较

function insertSort(arr){
     
				let handle = [];
				handle.push(arr[0]);
				let len = arr.length;
				for(let i=1; i<len; i++){
     
					let A = arr[i];
					for(let j=handle.length-1; j>=0; j--){
     
						let B = handle[j];
						if(A>B){
     
							handle.splice(j+1,0,A);
							break;
						}
						if(j===0){
     
							handle.unshift(A)
						}
					}
				}
				return handle;
			}
			var newArr = insertSort([5,6,4,9,1,3,4,10,33,55,66]);
			console.log(newArr);

控制台输出:
前端排序算法,冒泡排序、插入排序、快速排序、选择排序_第2张图片
3.快速排序:找到中间项,把它从原来数组中移除

function quickSort(arr){
     
				if(arr.length<=1){
     
					return arr;
				}
				let middleIndex = Math.floor(arr.length/2);
				let middleValue = arr.splice(middleIndex,1)[0];
				let arrLeft = [];
				let	arrRight = [];
				for(let i =0; i<arr.length; i++){
     
					let item = arr[i];
					item < middleValue ? arrLeft.push(item) : arrRight.push(item);
				}
				var newArr = quickSort(arrLeft).concat(middleValue, quickSort(arrRight));
				return newArr;
			}
			var newArr = quickSort([5,6,4,9,1,3,4,10,55,33,66,77]);
			console.log(newArr);

控制台打印:
前端排序算法,冒泡排序、插入排序、快速排序、选择排序_第3张图片
4.选择排序:从头开始,每一项跟后面所有进行比较,前大于后就换位置;

function selectSort(arr){
     
				let len = arr.length;
				let temp = null;
				for(let i=0; i<len-1; i++){
     
					var min = i;
					for(var j =min+1; j<len; j++){
     
						if(arr[min]>arr[j]){
     
							min = j;
						}
					}
				temp = arr[i];
				arr[i] = arr[min];
				arr[min] = temp
				}
				return arr
			}
			var newArr = selectSort([5,6,4,9,1,3,4,10,55,33,66,77]);
			console.log(newArr);

控制台打印:
前端排序算法,冒泡排序、插入排序、快速排序、选择排序_第4张图片

你可能感兴趣的:(javascript,es6)