目录
一、大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.冒泡排序的思路
如下图所示,对未排序的各元素从头到尾依次比较相邻的两个元素大小关系。如果左边的队员高,则两队员交换位置。向右移动一个位置,比较接下来的两个队员。当走到最右端时,最高的队员一定被放在了最右边。按照这个思路,从最左端重新开始,这次走到倒数第二个位置的队员即可。依次类推,就可以将数据排序完成。
第一次找出最高的人放在最后,需要两个两个数据项进行比较,这是一个循环操作。第二次将次高的人找到放在倒数第二个位置,也是两个两个进行比较, 只是不和最后一个比较(少了一次比较),但是前面的两个两个比较也是一个循环操作。第三次、第四次比较也同理。这种排序是循环中嵌套循环,并且被嵌套的循环次数越来越少的。

本文介绍了大O表示法及其在算法效率评估中的应用,详细讲解了冒泡排序、选择排序和插入排序的思路、代码实现以及效率分析。冒泡排序和选择排序的时间复杂度均为O(N²),而插入排序在平均情况下时间复杂度为O(N²),但在最佳情况下为O(N)。
最低0.47元/天 解锁文章

被折叠的 条评论
为什么被折叠?



