目录
一、大O表示法
在算法的描述中,数据项的个数发生变化时,算法的效率会跟着改变,可以通过粗略的度量来描述计算机算法的效率,这种粗略的度量被称为“大O表示法”。
大O表示的形式:
大O符号表示的时间复杂度:
推导大O表示法的方式:
- 用常量1取代运行时间中所有的加法常量
- 在修改后的运行次数函数中,只保留最高阶项
- 如果最高存在且不为1,则去除与这个项相乘的常数
二、排序算法
将数据放置在某个数据结构中存储起来以后,就可以需要根据需求对数据进行不同方式的排序。排序算法有很多种,比如:冒泡排序、选择排序、归并排序、计数排序、基数排序、希尔排序、堆排序、桶排序等等。简单排序有:冒泡排序、选择排序、插入排序等;高级排序有:希尔排序、快速排序等
创建列表类:
//创建列表类
function ArrayList() {
//属性
this.array = []
}
//方法
//将数据可以插入到数组中的方法
ArrayList.prototype.insert = function (item) {
this.array.push(item)
}
//toString
ArrayList.prototype.toString = function () {
return this.array.join('-')
}
三、冒泡排序
1.冒泡排序的思路
如下图所示,对未排序的各元素从头到尾依次比较相邻的两个元素大小关系。如果左边的队员高,则两队员交换位置。向右移动一个位置,比较接下来的两个队员。当走到最右端时,最高的队员一定被放在了最右边。按照这个思路,从最左端重新开始,这次走到倒数第二个位置的队员即可。依次类推,就可以将数据排序完成。
第一次找出最高的人放在最后,需要两个两个数据项进行比较,这是一个循环操作。第二次将次高的人找到放在倒数第二