算法篇(二)、选择排序

还记得(篇一)二分查找不,它只用于有序元素列表。这篇先学习第一种排序算法:选择排序。

首先先介绍两种最基本的数据结构:数组和链表,它们无处不在。

数组:数组中的元素存储地址在内存中是相连紧靠一起的

链表:链表中的元素可存储在内存中的任何位置,每个元素都存储着下一个元素的地址,从而一系列随机的内存地址就串在一起了

数组链表
读取O(1)O(n)
插入O(n)O(1)
删除O(n)O(1)

O(n) = 线性时间 、O(1) = 常量时间

//选择排序
//O(n*n)

function selectionSort(b) {
	if (!(b instanceof Array)) return "arr is not Array!";
	for (var c = [], a = 0; a < b.length;) {
		var e = b[0],
			d = 0;
		for (a = 0; a < b.length; a++) b[a] < e && (e = b[a], d = a);
		c.push(b.splice(d, 1).join())
	}
	return c
};

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值