摘要: 为什么要学数据结构和算法: 解决问题方法的效率,和数据的组织方式有关: 解决问题方法的效率,和空间的利用效率有关: 解决问题方法的效率,和算法的巧妙程度有关: 数据结构和算法的概念: 算法分析: 时间复杂度的计算: 正常循环的时间复杂度:O(1)、O(n)、O(n^2) …… 二分法的时间复杂度:l 阅读全文
posted @ 2018-10-30 15:27 月亮和电池 阅读(210) 评论(0) 推荐(0) 编辑
摘要: HTML的特点: HTML是一种标记语言,不需要编译,可以直接由浏览器执行。 HTML是一个文本文件,只要能写文本的工具都能用来开发HTML。 HTML文件的后缀是.html或.htm。 HTML对大小写不敏感。 HTML的基本结构: <!DOCTYPE html> <html> <head> <t 阅读全文
posted @ 2018-10-29 22:16 月亮和电池 阅读(223) 评论(0) 推荐(0) 编辑
摘要: 数组是一个存储元素的线性集合,元素可以通过索引来任意存取。 JS中的数组: JS中的数组是一种特殊的对象。 JS对象的属性名必须是字符串,所以数组的索引在内部也会被转换为字符串类型。 JS数组中的元素不必是同一种数据类型,这一点也值得注意。 创建数组: 判断一个对象是否是数组: 数组的写入和读取: 阅读全文
posted @ 2018-10-28 23:12 月亮和电池 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 快速排序的思路:选一个基准值 current,把比它大的放在它右边,比它小的放在它左边,递归直到排序完成。 用一个10个数字的数组,解释一下快速排序的过程: 第一趟: 原始数组:[44, 95, 46, 64, 13, 68, 24, 5, 50, 14],给三个参数 i=0,j=len-1,x 挖 阅读全文
posted @ 2018-10-27 21:15 月亮和电池 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 归并的思路:将大问题拆解成小问题,小问题单独解决后,再合并成大问题。 翻译成排序:将大数组拆解成小数组,小数组单独排序后,再合并成大数组。 用一个长度为10的数组,解释一下归并的过程: 原始数组:[72, 34, 51, 80, 14, 92, 84, 95, 68, 22] 对半拆分,直到数组变成 阅读全文
posted @ 2018-10-26 16:19 月亮和电池 阅读(144) 评论(0) 推荐(0) 编辑
摘要: 希尔排序是插入排序的升级版: 需求:插入排序对于小规模数据来说很好用,但随着数据规模增大,全部遍历并进行插入变得不再现实。 思路:对大规模的数据进行分组,在每个分组内进行插入排序,试图减小每次参与排序的数据规模。 用最常用的分组模式 h = 3h +1 来解释一下希尔排序的过程: 假设有20个待排序 阅读全文
posted @ 2018-10-25 16:49 月亮和电池 阅读(177) 评论(0) 推荐(0) 编辑
摘要: 插入排序思路: 将数组分成array[0]~array[i-1]和array[i]~array[array.length-1]两部分。 前面排好序,后面乱序,取array[i]和排好序的部分从后向前依次比较,找到合适位置插入,直到排序完成。 用一个长度为10的数组,解释一下插入排序的过程: 原始数组 阅读全文
posted @ 2018-10-24 23:46 月亮和电池 阅读(168) 评论(0) 推荐(0) 编辑
摘要: 选择排序的思路: 假设当次遍历第一个数字是数组中最小的,循环后面的数字,依次和它作比较,如果有更小的,就换到第一个。 每一次遍历,最小的数字就会被选择到数组的最前面,几次遍历过后,数组的排序完成。 用一个长度为10的数组,解释一下选择排序的过程: 原始数组:[72, 34, 51, 80, 14, 阅读全文
posted @ 2018-10-23 09:27 月亮和电池 阅读(123) 评论(0) 推荐(0) 编辑
摘要: 冒泡排序的思路: 遍历数组,两两比较,将较大的数字挪到后面。 每一次遍历,最大的数字就像泡泡一样冒到最后。 多次遍历过后,数组的顺序就排好了。 用一个长度为10的数组,解释一下冒泡排序: 原始数组:[72, 34, 51, 80, 14, 92, 84, 95, 68, 22] 第一次遍历: 两两比 阅读全文
posted @ 2018-10-22 16:03 月亮和电池 阅读(121) 评论(0) 推荐(0) 编辑