摘要: 什么是回调?知乎, 常溪玲:你到一个商店买东西,刚好你要的东西没有货,于是你在店员那里留下了你的电话,过了几天店里有货了,店员就打了你的电话,然后你接到电话后就到店里去取了货。在这个例子里,你的电话号码就叫『回调函数』,你把电话留给店员就叫『登记回调函数』,店里后来有货了叫做『触发了回调关联的事件』,店员给你打电话叫做『调用回调函数』,你到店里去取货叫做『响应回调事件』。回答完毕。为什么使用回调?1. 如上述例子,通过『登记回调函数』,等待店员『调用回调函数』,避免一直阻塞在店里等待货品。2. 及时响应状态的变化(商品无货->到货),通知你做相应的处理。回调 和 异步回调回调:一种双向调 阅读全文
posted @ 2014-04-01 17:03 memory_hc7 阅读(198) 评论(0) 推荐(0)
摘要: 二叉树的遍历有三种方式,如下:(1)前序遍历(DLR),首先访问根结点,然后遍历左子树,最后遍历右子树。简记根-左-右。(2)中序遍历(LDR),首先遍历左子树,然后访问根结点,最后遍历右子树。简记左-根-右。(3)后序遍历(LRD),首先遍历左子树,然后遍历右子树,最后访问根结点。简记左-右-根。例1:如上图所示的二叉树,若按前序遍历,则其输出序列为 。若按中序遍历,则其输出序列为 。若按后序遍历,则其输出序列为 。前序:根A,A的左子树B,B的左子树没有,看右子树,为D,所以A-B-D。再来看A的右子树,根C,左子树E,E的左子树F,E的右子树G,G的左子树为H,没有了结束。连起来为C-E 阅读全文
posted @ 2013-10-22 23:05 memory_hc7 阅读(225) 评论(0) 推荐(0)
摘要: HTTP 错误 400 400 请求出错 由于语法格式有误,服务器无法理解此请求。不作修改,客户程序就无法重复此请求。 HTTP 错误 401 401.1 未授权:登录失败 此错误表明传输给服务器的证书与登录服务器所需的证书不匹配。 请与 Web 服务器的管理员联系,以确认您是否具有访问所请求资源的权限。 401.2 未授权:服务器的配置导致登录失败 此错误表明传输给服务器的证书与登录服务器所需的证书不匹配。此错误通常由未发送正确的 WWW 验证表头字段所致。 请与 Web 服务器的管理员联系,以确认您是否具有访问所请求资源的权限。 401.3 未授权:由于资源中的 ACL 而未授权 此错误表 阅读全文
posted @ 2013-10-22 22:51 memory_hc7 阅读(1144) 评论(0) 推荐(0)
摘要: HTTP报文是面向文本的,报文中的每一个字段都是一些ASCII码串,各个字段的长度是不确定的。HTTP有两类报文:请求报文和响应报文。请求报文一个HTTP请求报文由请求行(requestline)、请求头部(header)、空行和请求数据4个部分组成,下图给出了请求报文的一般格式。(1)请求行请求行由请求方法字段、URL字段和HTTP协议版本字段3个字段组成,它们用空格分隔。例如,GET/index.htmlHTTP/1.1。HTTP协议的请求方法有GET、POST、HEAD、PUT、DELETE、OPTIONS、TRACE、CONNECT。这里介绍最常用的GET方法和POST方法。GET:当 阅读全文
posted @ 2013-10-22 22:48 memory_hc7 阅读(578) 评论(0) 推荐(0)
摘要: 1 /** 2 * 快速排序 之 分区 3 * @param a 4 * @param left 5 * @param right 6 * @param pivotIndex 7 * @return 8 */ 9 public static int partition(int[] a, int left, int right, int pivotIndex) {10 int pivot = a[pivotIndex];11 swap(a, pivotIndex, right)... 阅读全文
posted @ 2013-10-19 10:42 memory_hc7 阅读(150) 评论(0) 推荐(0)
摘要: 1 /** 2 * 冒泡排序 3 * 4 * 原理: 将序列划分为无序和有序区, 不断通过交换较大元素至有序区尾完成排序。 5 * 6 * 冒泡排序 时间复杂度是 O(N^2), 是效率低下的排序算法 7 * 当数据规模小的时候,可以考虑采用 8 * 当数据规模大的时候,最好使用其他排序算法 9 * 10 * @param a11 */12 public static void bubbleSort(int[] a) {13 int length = a.lengt... 阅读全文
posted @ 2013-10-19 10:36 memory_hc7 阅读(157) 评论(0) 推荐(0)
摘要: 地精排序-最简单的排序算法只用了一层循环,就实现了排序算法。 1 void gnomeSort(int[] a) { 2 int length = a.length; 3 int i = 0; 4 int temp; 5 while(i 0 && a[i-1] >= a[i]) { 7 //交换 8 temp = a[i-1]; 9 a[i-1] = a[i];10 a[i] = temp;11... 阅读全文
posted @ 2013-10-16 11:31 memory_hc7 阅读(711) 评论(0) 推荐(0)
摘要: 希尔排序(增量缩小排序)原理:先将序列按增量划分为元素个数相同的若干组, 使用直接插入排序法进行排序,然后不断缩小增量直至为1。 最后使用直接插入排序完成排序。适用于中等规模数据的排序希尔排序的时间复杂度与增量序列的选取有关,如希尔增量({N/2, (N / 2)/2, ..., 1})的时间复杂度为O(N^2)而Hibbard增量({1, 3, ..., 2^k-1})的时间复杂度为O(N^(5/4))使用不同的增量对希尔排序的时间复杂度的改进将不一样,甚至一点小的改变都将引起算法性能剧烈的改变。此外,希尔算法在最坏的情况下和平均情况下执行效率相差不是很多,专家们提倡,几乎任何排序工作在开. 阅读全文
posted @ 2013-10-16 09:34 memory_hc7 阅读(270) 评论(0) 推荐(0)
摘要: 插入排序原理: 将数组分成有序区和无序区两个区,对于无序区元素,通过与有序区元素对比、前移,找到相应位置并插入。 因而在对比、前移的扫描过程中,需要反复把已排序元素逐步向后挪位,为最新元素提供插入空间。 适用于少量数据的排序,时间复杂度为O(n^2),是稳定的排序方法。 图片演示: Java代码: 1 void InsertSort(int[] a) { 2 int length = a.length; 3 int i, j;// 分别为有序区和无序区指针 4 int temp; 5 6 for... 阅读全文
posted @ 2013-10-16 09:25 memory_hc7 阅读(219) 评论(0) 推荐(0)