当前位置: 首页 > Web前端 > HTML

问题31:以上十种排序算法有什么区别?

时间:2023-04-02 17:15:17 HTML

算法分类(比较与非比较)非线性时间比较类排序:通过比较确定元素之间的相对顺序,因其时间复杂度无法突破O(nlogn),称为非线性时间比较类排序linearTime非比较排序:元素的相对顺序不是由比较决定的,它可以突破比较排序时间的下界,在线性时间内运行,所以称为线性时间非比较排序排序算法评价标准时间复杂度时间复杂度分为:最差时间复杂度、平均时间复杂度、最佳时间复杂度。主要反应是程序执行的次数。空间复杂度是衡量一个算法在运行过程中临时占用存储空间大小的指标。稳定性是指对于序列中具有相同键值(Keyvalue)的元素,排序前后都是有序的。相对关系保持不变。对于int这样的基本数据类型,稳定性基本没有意义,因为它的key值就是元素本身,两个key值相同的元素可以认为是相同的。但是对于复杂的数据类型,数据的键值相同,数据不一定相同。比如一个Student类包含了Name和Score两个属性,Score是排序的key值。这时候,具有相同键值的元素之间的相对关系就是意义。总结就是经过排序后,具有相同值的数据可以保持原顺序中的相对位置不变。内部排序中的所有排序操作都在内存中完成,适用于数据规模不是特别大的情况。由于数据太大,外部排序将数据放在磁盘上,只能通过磁盘和内存的数据传输来进行排序。各排序算法总结名词解释:n:数据大小(即序列的长度)k:“桶”的个数In-place:占用常量内存,不占用额外内存Out-place:占用额外内存参考:值得收藏的十大经典排序算法文章内容/灵感借鉴自下方内容【持续维护/更新500+前端面试题/笔记】https://github.com/noxussj/In...【大数据可视化图表插件】https://www.npmjs.com/package...【使用THREE.JS实现3D城市建模(珠海市)】https://3d.noxussj.top/