自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 资源 (1)
  • 收藏
  • 关注

原创 冒泡排序,选择排序,插入排序

冒泡排序: 冒泡排序基本思想:两两比较相邻记录的关键字,如果反序则交换,直到没有反序的记录为止。 时间复杂度:如果是按照优化后的算法来看,最优的就是已经有序,没有数据交换只有比较,时间复杂度是O(n).当最坏的情况,就是待排序表是逆序的情况,此时需要比较1+2+3+...+(n+1) = n(n-1) /2 次,并坐等数量级的记录移动,总的时间复杂度为O(n^2). 实现代码: ...

2016-12-27 13:15:40 374

原创 重建二叉树

题干:输入某二叉树的前序遍历和中虚遍历的结果,请重建出该二叉树。假设输入的前序遍历和中虚遍历的结果中都不含重复的数字。例如,输入前序遍历序列{,1,2,4,7,3,5,6,8 }和中虚遍历序列{4,7,2,1,5,3,8,6},则重建出如下图所示的二叉树并输出它的头结点。 解题思路: 我们知道二叉树的前序遍历序列中,第一个数字总是树的根结点的值。但在中序遍历序列中,根结点的值在序列的中

2016-12-23 12:50:08 254

原创 快速排序算法

排序算法已经是程序员面试中必问的题目,然而频率最高的就是快排,这里讲解下快排的实现思路,以及具体试下代码。 题目:给定一组数据:4,7,9,10,3,4,6,升序输出。 思路基本思想是: 1.先从数列中取出一个数作为基准数。 2.分区过程,将比这个数大的数全放到它的右边,小于或等于它的数全放到它的左边。 3.再对左右区间重复第二步,直到各区间只有一个数。 其实不管是哪种解法,都是...

2016-12-21 10:29:26 334

原创 进程与线程

操作系统系统的三大核心功能:进程管理,内存管理和操作系统三大核心功能。这里想先从进程说起。 进程 一个程序加载到内存后就变为进程(进程是执行中的程序)。 进程 = 程序 + 执行 进程是表示资源分配的基本单位,又是调度运行的基本单位。例如,用户运行自己的程序,系统就创建一个进程,并为它分配资源,包括各种表格、内存空间、磁盘空间、I/O设备等。然后,把该进程放人进程的就绪队列。进程调

2016-12-19 22:53:09 270

原创 替换字符串中的空格

题目:请实现一个函数,把字符串中的每个空格替换成“%20”。例如输入“We are happy.”,则输出“We%20are%20happy.”。 其实实现这个题目大致两种解法: 第一种算法: 从头到尾扫描字符串,每一次碰到字符的时候做替换。不过由于是把1个字符替换成3个字符,我们必须要把空格后面所有的字符都后移两个字节,否则就有两个字符被覆盖了。假设字符串的长度是n。对每个空格字符,需要移

2016-12-15 22:26:51 449

原创 二位数组中的查找

题目:在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的额顺序排列。请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数。 例如下面的二维数组就是每行,每列都题赠排序。如果在这个数组中查找数组7.则返回true,如果查找数字5,由于数组不含有该数字,返回false。

2016-12-15 13:54:38 377

原创 查找算法--二分法

二分查找算法的基本思想: 一.首先确定该区间的中间元素位置:mid = (low + high)/2;    mid代表区间内中间元素的位置    low代表区间内最左边元素的位置    high代表区间内最右边元素的位置 二.将待查key元素值与中间元素mid的值(array[mid])比较,如果相等,则查找成功,否则确定新的查找区间。   如果array[mid]>key,则由表的

2016-12-13 14:53:50 629

原创 两个栈实现队列

题目:用两个栈实现一个队列。队列的声明如下,请实现它的两个函数appendTail和deleteHead,分别完成在队列尾部插入结点和在队列头部删除结点的功能。 接着道题有多种思路,下面逐个介绍: 算法一: 思路: s1时入栈的,s2时出栈的。 入队列,直接压到s1。 出队列,先把s1中的元素全部出栈压入大s2中,弹出s2中的栈顶元素; 再把s2的所有元素全部压回s

2016-12-12 17:16:31 355

原创 Instruments性能优化-Core Animation

当App发展到一定的规模,性能优化就成为必不可少的一点。但是很多人,又对性能优化很陌生,毕竟平常大多时间都在写业务逻辑,很少关注这个。最近在优化自己的项目,也收集了很多资料,这里先浅谈一下使用Instruments中CoreAnimation优化收获的经验以及总结,这是第一篇,后续会更新Timer Profiler,Leaks等其他优化工具的具体用法。准备工作在性能优化中一个最具参考价值的属性是FP

2016-12-12 09:59:20 1930 6

原创 O(1)时间删除链表结点

题干:给出单向链表的头指针和一个结点指针,定义一个函数在O(1)时间删除该结点。 其实这道题解题大致两种解题思路: 第一:从链表的头结点开始遍历查找要删除的结点,并在链表中删除该结点。时间复杂度O(n). 第二:因为我们题干中已知条件有要删除结点的指针,比如要删除结点是i,先把i的下一个结点j的内容复制到i,然后把i的指针指向结点j的下一个结点,这时候再删除结点j,这样结点i就被删除了。时间

2016-12-06 14:23:54 329

原创 从尾到头打印链表

解决这个问题其实有很多种思路,例如: 第一种:使用递归配合回溯即刻实现。 第二种:利用栈的特性,将链表循环遍历放入栈中,栈顶是链表的尾结点,然后出栈依次打印就可从尾到头打印链表。 第三种:使用双向链表,加上一个指针即指向前驱结点,这样也可以实现。 第四种:把链表中连接结点的指针反转过来,改变链表的方向,再从头都尾打印即可。 解决方法很多种,我们在这里给出第一二种的具体实现步骤。 //链

2016-12-05 13:18:46 341

CoreData简单工具类

针对CoreData的一个简单封装,可实现基本的插入,删除,查询,更新的功能。

2016-01-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除