自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

SunSatan的博客

一专多能、刻意练习、终身学习

  • 博客(22)
  • 资源 (4)
  • 收藏
  • 关注

转载 6 个工作中休息小技巧,让你工作效率翻倍!

本文转载自:Google 都在用的 6 个休息小技巧,让你工作效率翻倍一、 大脑工作久了为什么要休息:为了恢复注意力和意志力大家应该都有感受,工作久了会累,思想走神,效率就会降低。研究表明,大脑工作时,它最需要花费的两个资源是意志力和注意力,随着工作时间的增加,你的意志力和注意力都在慢慢减退,这时候就需要用休息来恢复。大概每个人都有过这种经历,自己在高度集中做事一段时间后,...

2019-05-30 16:55:24 1137

原创 iOS开发-instancetype的正确使用姿势

1、instancetypeinstancetype意思为实例化,instancetype与和id一样,都可以指向一个继承了Object(或者NSObject)类的对象。区别在于:instancetype只能作为方法返回值,会返回该方法所在的类的实例化对象,所以instancetype被称为关联返回类型。使用instancetype会在编译时进行类型检查,有利于开发者在编译阶段发现错误...

2019-05-26 16:08:42 3940 1

原创 iOS开发-id、instancetype、NSObject *和id<NSObject> *的区别

首先需要知道,在cocoa的开发环境里,NSObject是所有类的根类。1、idid的定义:typedef struct objc_object { Class isa;} *id;从定义来看,id就是一个isa指针,可以指向任何一个继承了Object(或者NSObject)类的对象,所以id可以指向任何一个cocoa的合法对象,id可以简单理解为一个万能指针。id...

2019-05-26 15:31:57 528

原创 iOS开发-None of your accounts are a member of 'XXX(Personal Team)'

error:None of your accounts are a member of 'XXX(Personal Team)'An unexpected error occurred. Xcode cannot find a team matching ‘XXX(Personal Team)'’No profiles for ‘XXX(Personal Team)'’ were fo...

2019-05-26 02:04:43 656

原创 iOS开发-property follows cocoa naming convention for returning 'owned' objects

error:property follows cocoa naming convention for returning 'owned' objectsproperty的命名使用了cocoa的命名约定,也就是property的命名开头使用了保留字new、copy等,如copyString、newString等。这些命名是不可以使用的,把property的名字改一下就行了。...

2019-05-26 01:57:16 4058

原创 数据结构与算法(二十一)快速排序

1、快速排序算法快速排序(Quick Sort)的基本思想是:通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,则可分别对这两部分记录继续进行排序,以达到整个序列有序的目的。基本实现思路:快速排序算法每一趟排序都需要一个基准数,一般以待排序的序列最左边的第一个数值为基准数,然后设置两个哨兵在待排序的序列的两端,左哨兵往右寻找比基准数大的数值,右哨兵...

2019-05-22 16:09:05 263

原创 数据结构与算法(二十)堆排序

堆排序(Heap Sort)就是对简单选择排序进行的一种改进,这种改进的效果是非常明显的。1、堆我们首先要知道什么是堆?堆是具有下列性质的完全二叉树:每个结点的值都大于或等于其左右孩子结点的值,称为大顶堆,或者每个结点的值都小于或等于其左右孩子结点的值,称为小顶堆。这里需要注意从堆的定义可知,根结点一定是堆中所有结点的最大(小)者。二叉树拥有这样一个性质 :如果对一棵有n个...

2019-05-20 01:10:50 400 1

原创 数据结构与算法(十九)希尔排序

希尔排序(ShellSort)是插入排序方式的一种,又称“缩小增量排序”,是直接插入排序算法的一种更高效的改进版本。直接插入排序,它的效率在某些时候是很高的,比如,数据集本身就是基本有序的,只需要少量的插入操作,就可以完成整个数据集的排序工作,此时直接插入很高效;还有就是数据量比较少时,直接插入的优势也比较明显。可问题在于,这两个条件本身就过于苛刻,现实中数据量少或者基本有序都属于特殊情况。...

2019-05-19 03:15:34 986

原创 数据结构与算法(十八)插入排序

插入排序(Insertion Sort)的基本思想是将后一个记录插入到前面已经排好序的有序序列中,从而得到一个新的、记录数增1的有序序列。最直观的栗子就是我们平时打斗地主,每次每人自己手动启一张牌,然后根据牌的大小,将刚启的牌插到手中的牌中。1、直接插入排序/*插入排序算法*/void Insertion_Sort(int *arr, int len) { for (in...

2019-05-18 15:55:34 132

原创 数据结构与算法(十七)选择排序

选择排序(Selection Sort)就是遍历n-1次数组,每次从待排序的数据中找出一个最小值或最大值,与第i位置上的数据进行交换。首先我们需要一个待排序的数组arr[10] = {0, 9, 1, 5, 8, 3, 7, 4, 6, 2},其中arr[0]=0用做哨兵或临时变量所以不参与排序,所以数组下标从1开始,有效长度len=9,实际长度为10。然后我们还需要交换数据的操作:...

2019-05-16 03:18:19 194

原创 数据结构与算法(十六)冒泡排序和鸡尾酒排序

冒泡排序(Bubble Sort)是一种交换排序,它的基本思想是:两两比较相邻记录的关键字,如果反序则交换,以将当前序列的最小值交换到当前序列最前端为一轮结束,需要(length-1)轮,感觉数据是一个一个往上冒出来,这个现象类似“冒泡泡”,所以称为冒泡排序。1、顺序存储结构实现冒泡排序首先我们需要一个待排序的数组arr[10] = {0, 9, 1, 5, 8, 3, 7, 4, 6,...

2019-05-15 16:37:02 344

原创 数据结构与算法(十五)排序算法

排序算法是最基本的算法之一,也是平时最常见、最常用的算法。1、排序的稳定性对于一个未排序的序列, 其中a[2]和a[5]的关键字值相等,经过排序后,若原a[2]的位置仍在原a[5]之前,那么称该排序方法是稳定的;若原a[5]的位置反在原a[2]的前面,那么称该排序方法是不稳定的。只要有一组关键字发生类似的情况,便认为此排序方法不稳定。排序算法是否稳定,需要通过仔细分析才能得出。举个...

2019-05-14 23:29:31 174

原创 使用位运算优化乘、除以及模运算

总所周知,位运算在运算中是最快的,计算同样乘、除结果,效率却是乘、除的三倍,也就是耗时是乘除的三分之一。因此,可以使用位运算来代替部分算术运算,以此提高性能。其中最典型的就是对于整数的乘、除以及模运算的优化。&:二进制的与运算符。|:二进制的或运算符。^:二进制的异或运算符。~:二进制的取反运算符,所有位都取反。<<:二进制的按位左移运算符,有符号数左移...

2019-05-14 03:06:33 1379

原创 数据结构与算法(十四)平衡二叉树(AVL树)

二叉排序树在使用时可能会出现极端的左或右斜树的现象,导致算法效率大大降低,这称为二叉排序树的不平衡。而我们在使用的时候,总是希望二叉排序树是平衡的,使算法的效率最大化,所以就有了平衡二叉树(AVL树)。1、平衡二叉树(AVL树)从平衡二叉树的英文名字,你也可以体会到,它是一种高度平衡的二叉排序树,那什么叫做高度平衡呢?意思是说,要么它是一棵空树,要么它的左子树和右子树都是平衡二叉树...

2019-05-12 18:12:40 335

原创 数据结构与算法(十三)二叉查找树

之前提到的斐波那契查找、二分查找和插值查找都是基于有序的线性表存储结构,称为静态查找表,它们在查找表需要频繁插入和删除的操作的情况下不适用,那有没有即可以使得插入和删除效率不错,又可以比较高效率地实现查找的算法呢?这种需要在查找时插入或删除的查找表称为动态查找表。1、二叉查找树二分查找的过程既然能用二叉树进行表示,说明该逻辑可以使用二叉树进行实现,使用二分查找思想实现的二叉树就称为二叉查...

2019-05-08 16:55:58 208

原创 数据结构与算法(十二)二分查找和插值查找

1、二分查找有一个游戏最能体现二分查找的思路:我在纸上已经写好了100以内的正整数数字,然后请你猜,问最多几次可以猜出来?这个游戏的解法就是每次猜数后折取一半,我们把这种每次取中间记录查找的方法叫做折半查找,或二分查找。二分查找(Binary earch),也称为折半查找。它的前提是线性表中的记录必须是关键码有序(通常从小到大有序) ,线性表必须采用顺序存储。二分查找的基本思想...

2019-05-07 21:12:37 2415

原创 数据结构与算法(十一)顺序查找和斐波那契查找

1、顺序查找顺序查找(Sequential Search)又叫线性查找,是最基本的查找技术,它的查找过程是:从表中第一个(或最后一个)数据开始,逐个进行数据的关键字和查找值比较,若某个记录的关键字和查找值相等,则查找成功;如果直到最后一个(或第 )记录,其关键字和查找值比较都不等时,则表中没有所查的记录,查找失败。1.1、顺序查找顺序查找使用for循环,肯定是我们最方便最常用的方法。...

2019-05-07 01:12:35 325

原创 数据结构与算法(十)哈夫曼树

什么叫做哈夫曼树呢?通过一个栗子来看。我们通常需要按照考试成绩的百分制转换为一个五级分制的成绩,于是得到下面的代码。if (score < 60) achievement = "不及格";else if (score < 70) achievement = "及格";else if (score < 80) achievement = "中等...

2019-05-04 03:50:21 925

原创 数据结构与算法(九)二叉树的基本功能实现

1、二叉树的创建首先创建一颗二叉树需要输入结点,但是如果我们输入结点的前序遍历序列为:ABDC,我们如何确定哪个是左孩子?哪个是右孩子?因此为了能让每个结点确认是否有左、右孩子,我们需要对原二叉树进行扩展。也就是将二叉树中每个结点的空指针引出一个虚结点,其值为一个特定值,比如“#”。我们称这种处理后的二叉树为原二叉树的扩展二叉树。扩展二叉树就可以做到一个遍历序列确定一颗二叉树了。之前的...

2019-05-02 01:11:30 349

原创 数据结构与算法(八)二叉树的存储结构和遍历方法

1、二叉树的存储结构1.1、二叉树的顺序存储结构顺序存储结构也就是数组,对树这种一对多的逻辑关系结构实现起来是比较困难的,但是二叉树是一种特殊的树,由于它的特殊性,使得用顺序存储结构也可以实现。将二叉树按层序编号来对应数组的下标,并根据二叉树的性质来确定双亲结点和孩子结点在数组中的位置。先来看完全二叉树的顺序存储结构。由此体现出完全二叉树的优越性,由于它定义的严格, 所...

2019-05-01 02:58:56 352

原创 数据结构与算法(六)树的构造

先来看看顺序存储结构,使用数组来实现这对于线性表来说是很自然的,但对于树这样一多对的结构呢?树中某个结点的孩子结点可以有多个,这就意味着,无论按何种顺序将树中所有结点存储到数组中,结点的存储位置都无法直接反映逻辑关系。你想想看,数据元素紧挨着的存储,如何判断谁是谁的双亲,谁是谁的孩子呢?简单的顺序存储结构——数组显然是是不能满足树的实现的要求的。我们可以利用结构体和数组的特点,通过对结...

2019-05-01 02:58:52 701

原创 数据结构与算法(七)二叉树的特点和性质

二叉树,顾名思义就是每个结点有两个分支(分叉、子树),所以叫二叉树。二叉树是树形结构里面最重要的一种结构,平衡查找树、红黑树、哈夫曼树等都是二叉树的子类结构。1、二叉树的特点二叉树的每个结点最多有两个分支、有两棵子树,没有子树或有一个子树也是可以的,所以二叉树中不存在度大于2的结点。 二叉树是有序树,左子树和右子树是有顺序的,次序不能任意颠倒。就像人是双手、双脚,但显然左手、左脚和右...

2019-05-01 02:58:47 3215

iOS Core Animation:Advanced Techniques.zip

iOS Core Animation:Advanced Techniques的中文译本,学习iOS 核心动画技巧的开发书籍,大家可以放心下载。

2019-07-28

《啊哈!算法》.zip

《啊哈!算法》是一本充满智慧和趣味的算法入门书。没有枯燥的描述,没有难懂的公式,一切以实际应用为出发点,通过幽默的语言配以可爱的插图来讲解算法。你更像是在阅读一个个轻松的小故事或是在玩一把趣味解谜游戏,在轻松愉悦中便掌握算法精髓,感受算法之美。里面有两版:带书签和可扫描,一定可以满足你的需求。

2019-05-19

算法图解:像小说一样有趣的算法入门书

算法图解:像小说一样有趣的算法入门书。算法图解:像小说一样有趣的算法入门书。算法图解:像小说一样有趣的算法入门书。算法图解:像小说一样有趣的算法入门书。算法图解:像小说一样有趣的算法入门书。算法图解:像小说一样有趣的算法入门书。算法图解:像小说一样有趣的算法入门书。算法图解:像小说一样有趣的算法入门书。算法图解:像小说一样有趣的算法入门书。算法图解:像小说一样有趣的算法入门书。算法图解:像小说一样有趣的算法入门书。算法图解:像小说一样有趣的算法入门书。算法图解:像小说一样有趣的算法入门书。算法图解:像小说一样有趣的算法入门书。算法图解:像小说一样有趣的算法入门书。算法图解:像小说一样有趣的算法入门书。

2019-04-14

趣谈网络协议

趣谈网络协议:小说一样的网络协议入门课,网络协议是每个程序员入门的必修课,但是彻底掌握并应用网络协议知识却并非易事,比如常见的 TCP/IP、HTTP。 趣谈网络协议(1-41讲)PDF资料。

2019-03-24

空空如也

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

TA关注的人

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