JS排序算法

这里简单的总结一下排序算法中的4种

1、冒泡排序
2、选择排序
3、插入排序
4、快速排序

1 冒泡排序
冒泡排序就是循环遍历,两两进行比较排大小

function BubleSort(s){
	for(let i = 0; i < s.length; i++){
		for(let j = i; j < s.length; j++){
			s[j] > s[j-1] && ( [s[j], s[j-1]]=[s[j-1], s[j]] );
		}
	}
}	

2 选择排序
选择排序就是对当前遍历点之后的数据进行对比,比当前遍历点小的数据就进行数值交换

function SelectSort(s){
	for(let i = 0; i < s.length; i++){
		for(let j = i; j < s.length; j++){
			s[i] > s[j] && ( [s[i], s[j]] = [s[j], s[i]]);
		}
	}
}

3 插入排序
插入排序就是假设当前遍历点之前的数组已经是有序的,将当前遍历点插入到该有序数组的合适位置

function InsertSort(s){
	for(let i = 1; i < s.length; i++){
		for(let j = i; j > 0; j--){
			s[j] < s[j-1] && ( [s[j], s[j-1]] = [s[j-1], s[j]]);
		}
	}
}

4 快速排序
快速排序就是采用分治法,将数组分为比对比节点大的数组和比对比节点小的数组,再进行递归处理得到最后的排序数组

function QuickSort(s){
	if(s.length <= 1) return s;
	let l = 0, r = s.length, curr = s.splice(0,1);
	s.forEach(item=>{
		item > curr ? r.push(item) : l.push(item);
	})
	return QuickSort(l).concat(curr, QuickSort(r));
}

这4种排序中,冒泡和插入排序是稳定的,而选择和快速排序是不稳定的。

快速排序的详细讲解参考文章:https://blog.csdn.net/morewindows/article/details/6684558

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值