摘要: 今天不上班,复习以前的知识发现有些书籍写到js没有块级作用域,实际上ES6以前的js确实没有块级作用域,但ES6之后js拥有了块级作用域,前提是使用let关键字声明变量。 上代码 阅读全文
posted @ 2017-07-16 10:47 郑闯 阅读(361) 评论(0) 推荐(0) 编辑
摘要: ```css img{ display: table-cell; vertical-align: bottom; } ``` 阅读全文
posted @ 2017-07-14 17:54 郑闯 阅读(5537) 评论(0) 推荐(0) 编辑
摘要: ```js //ban 为某div let startX = 0; ban.addEventListener("touchstart",function(){ //获取初始点击位置 startX = event.touches[0].pageX; }) ban.addEventListener("t 阅读全文
posted @ 2017-07-14 17:50 郑闯 阅读(158) 评论(0) 推荐(0) 编辑
摘要: 思路 1. 分解(将一个数组拆分成两个数组) 2. 合并(将两个有序的数组合并成一个有序的数组,借助一个辅助数组) 代码 c include // 将arr[l...mid]和arr[mid+1...r]两部分进行归并 void __merge(int arr[], int l, int mid, 阅读全文
posted @ 2017-05-16 11:39 郑闯 阅读(134) 评论(0) 推荐(0) 编辑
摘要: 思路 希尔排序是插入排序的改进版本 起本质还是插入排序,只不过多了分组 按照分组进行一个个小的插入排序 利用插入排序对近乎有序的序列排序的高效性的特性 写法 1. 先写一个简单的插入排序 2. 在第二层循环设置步长 代码 c include void shell_sort(int arr[],i 阅读全文
posted @ 2017-05-16 00:12 郑闯 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 思路 前面和 "快速排序1" 的思想大致一样 1. 找一个基准数先将数组分成三部分(小于基准数部分,基准数,大于基准数部分)再进而递归 2. 区别在于for循环部分 3. 设置一个i,将小于基准数p的部分放在arr[l+1,j]中,将大于基准数p的部分放在arr[j+1,r]中 4. 即判断arr[ 阅读全文
posted @ 2017-05-15 22:47 郑闯 阅读(103) 评论(0) 推荐(0) 编辑
摘要: 基本思想: 1. 从序列当中选择一个基准数(pivot),我们选择第一个数为基准数。 2. 先设置一个哨兵j,从右向左找到比基准数小的数 3. 再设置一个哨兵i,从左往右找到比基准数大的数(i不能大于j) 4. 如果i void _quick_sort(int arr[],int l,int r){ 阅读全文
posted @ 2017-05-15 21:34 郑闯 阅读(229) 评论(0) 推荐(0) 编辑
摘要: 递归的写法 1. 写下只有一次递归的时候要做哪些事情并将其封装成单个函数dosome() 2. 写下判断语句,在什么情况下重复递归调用 示例代码 阅读全文
posted @ 2017-05-15 20:13 郑闯 阅读(1408) 评论(0) 推荐(0) 编辑
摘要: 思想 每一轮选择出数组中最小的,最后与这一轮的第一个数交换位置 代码 c include int select_sort(int arr[],int n){ for (int i=0; i 阅读全文
posted @ 2017-05-15 19:13 郑闯 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 思想 把待排序的纪录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的纪录插入完为止,得到一个新的有序序列。 设无序数组为a[0…n 1]。 1. 初始时,a[0]自成1个有序区,无序区为a[1..n 1]。 2. 令i=1,将a[i]插入当前的有序区a[0…i 1]中形成a[0…i 阅读全文
posted @ 2017-05-15 18:10 郑闯 阅读(168) 评论(0) 推荐(0) 编辑