摘要:插入排序的过程就是将待插元素一个个插入初始有序部分的过程。而直接插入排序就是把未排序的序列里的第一位数与前面的有序数列进行比较,凡是比它大的都向后移动一位,直到找到正确的位置进行交换。
1.前言
从上大学开始,算法与数据结构这东西我是一直心心念念,奈何又懒又蠢,这么基础科目一直没啥成效。但是如鲠在喉,如果再不学的话可能就成为一块心病了。所以虽然和现在工作没啥关系但还是决定学一下基础,聊以自慰。
2.排序 2.1简单选择排序对于一个有n个元素的数组a(下标从0开始),进行n趟操作,每趟从待排部分[i,n)中i选择i最小的元素,令其与a[i]进行交互,总复杂度为O(n^2):
var a = [5, 2, 4, 6, 3, 1]; //select sort function selectSort(a) { var n = a.length; for (var i = 0; i < n; i++) {//n次操作,即所谓的趟 var k = i;//设最小值的下标为i console.log(i) for (var j = i + 1; j < n; j++) {//每趟待排序部分 if (a[j] < a[k]) {//若求倒序则改为> k = j;//更新最小值的下标 } } //交换 var temp = a[i]; a[i] = a[k]; a[k] = temp; } return a; } console.log(selectSort(a));2.2简单插入排序
这里的插入排序指的是直接插入排序。插入排序的过程就是将待插元素一个个插入初始有序部分的过程。而直接插入排序就是把未排序的序列里的第一位数与前面的有序数列进行比较,凡是比它大的都向后移动一位,直到找到正确的位置进行交换。
function insertSort(a){ var n=a.length; for(var i =1;i0&&temp 其实很像倒着来的冒泡排序
参考书目《算法笔记》
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/93826.html
摘要:今天同学去面试,做了两道面试题全部做错了,发过来给道典型的面试题前端掘金在界中,开发人员的需求量一直居高不下。 排序算法 -- JavaScript 标准参考教程(alpha) - 前端 - 掘金来自《JavaScript 标准参考教程(alpha)》,by 阮一峰 目录 冒泡排序 简介 算法实现 选择排序 简介 算法实现 ... 图例详解那道 setTimeout 与循环闭包的经典面...
摘要:插入排序插入排序应该算是最简单和容易理解的排序算法。平均来说插入排序算法复杂度为。在最好的情况,冒泡排序需要次交换,而插入排序只要最多交换。因此很多现代的算法教科书避免使用冒泡排序,而用插入排序替换之。快速排序也是一种分治的递归算法。 计算的 时间复杂度(最差、平均、和最好性能),依据列表(list)的大小(n)。一般而言,好的性能是O(n log n),且坏的性能是O(n^2)。对于...
摘要:特意对前端学习资源做一个汇总,方便自己学习查阅参考,和好友们共同进步。 特意对前端学习资源做一个汇总,方便自己学习查阅参考,和好友们共同进步。 本以为自己收藏的站点多,可以很快搞定,没想到一入汇总深似海。还有很多不足&遗漏的地方,欢迎补充。有错误的地方,还请斧正... 托管: welcome to git,欢迎交流,感谢star 有好友反应和斧正,会及时更新,平时业务工作时也会不定期更...
摘要:上一篇数据结构与算法树写在前面这是学习数据结构与算法的最后一篇博客,也是在面试中常常会被问到的一部分内容排序和搜索。 上一篇:JS数据结构与算法_树 写在前面 这是《学习JavaScript数据结构与算法》的最后一篇博客,也是在面试中常常会被问到的一部分内容:排序和搜索。在这篇博客之前,我每每看到排序头就是大的,心里想着类似冒泡排序,两层遍历啪啪啪就完事了,然后再也无心去深入研究排序相...
阅读 2924·2021-11-15 18:02
阅读 3816·2021-10-14 09:43
阅读 3759·2021-09-08 10:41
阅读 2533·2019-08-30 15:53
阅读 1815·2019-08-30 14:14
阅读 1961·2019-08-29 16:12
阅读 3155·2019-08-29 14:03
阅读 1290·2019-08-29 13:46