自定义博客皮肤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)
  • 收藏
  • 关注

原创 算法 (九) : 堆排序

堆排序堆排序(Heapsort)是指利用堆积树(堆)这种数据结构所设计的一种排序算法,它是选择排序的一种。可以利用数组的特点快速定位指定索引的元素。堆分为大根堆和小根堆,是完全二叉树。大根堆的要求是每个节点的值都不大于其父节点的值,即A[PARENT[i]] >= A[i]。在数组的非降序排序中,需要使用的就是大根堆,因为根据大根堆的要求可知,最大的值一定在堆顶。堆的定义 一个完全二叉树中,任意父结点总是大于或等于(小于或等于)任何一个子节点,则为大顶堆(小顶堆)。 堆的数组存.

2020-06-02 15:53:55 305

原创 算法 (八) : 动态规划

动态规划算法动态规划算法是通过拆分问题,定义问题状态和状态之间的关系,使得问题能够以递推(或者说分治)的方式去解决。[1]动态规划算法的基本思想与分治法类似,也是将待求解的问题分解为若干个子问题(阶段),按顺序求解子阶段,前一子问题的解,为后一子问题的求解提供了有用的信息。在求解任一子问题时,列出各种可能的局部解,通过决策保留那些有可能达到最优的局部解,丢弃其他局部解。依次解决各子问题,最后一个子问题就是初始问题的解。一、基本概念动态规划过程是:每次决策依赖于当前状态,又随即...

2020-06-02 15:50:37 549

原创 算法 (七) : 希尔排序

希尔排序希尔排序(Shell Sort)是插入排序的一种。也称缩小增量排序,是直接插入排序算法的一种更高效的改进版本。希尔排序是非稳定排序算法。该方法因DL.Shell于1959年提出而得名。希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。希尔排序总结来说就是把记录按步长 gap 分组,对每组记录采用直接插入排序方法进行排序。随着步长逐渐减小,所分成的组包含的记录越来越多,当.

2020-06-02 15:49:36 637

原创 算法 (六) : 二分查找

原理:将数组分为三部分,依次是中值(所谓的中值就是数组中间位置的那个值)前,中值,中值后;将要查找的值和数组的中值进行比较,若小于中值则在中值前 面找,若大于中值则在中值后面找,等于中值时直接返回。然后依次是一个递归过程,将前半部分或者后半部分继续分解为三部分。优点:二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好,占用系统内存较少;缺点:是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。首先,假设表中元素是按升序排列..

2020-06-02 15:46:58 467

原创 算法 (五) : 归并排序

归并排序(MERGE-SORT)是建立在归并操作上的一种有效的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。归并过程为:比较a[i]和b[j]的大小,若a[i]≤b[j],则将第一个有序表中的元素a[i]复制到r[k]中,并令i和k分别加上1;否则将第二个有序表中的元素b[j]复制到r[k]中,并令j和k分别加上1,如此循环下...

2020-06-02 15:44:04 557

原创 算法 (四) : 插入排序

插入排序原理:它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。插入排序核心:假设第一个元素排好,之后的元素对排好的部分从后向前比较并逐一移动。关键码关键码是数据元素中某个数据项的值,用它可以标示一个数据元素。通常会用纪录来标示数据元素,一个纪录可以有若干数据项组成。例如,一个学生的信息就是一条纪录,它包括学号,姓名,性别等若干数据项。主关键码可以唯一的标示一个纪录的关键码,如学号。次关键码是可以标示若干记录的关键字,如性别、姓名。...

2020-06-02 15:35:07 889

原创 算法 (三) : 快速排序

快速排序算法快速排序(Quicksort)是对冒泡排序的一种改进。快速排序由C. A. R. Hoare在1962年提出。它的基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。诞生时间 1962年 提出者 C. A. R. Hoare 适用领域范围 ...

2020-06-02 15:25:23 293

转载 算法 (二) : 冒泡排序

冒泡排序(Bubble Sort),是一种计算机科学领域的较简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端,故名。算法原理冒泡排序算法的运作如下:(从后往前)1.比较相邻的元素。如果第一个比第二个大,就交换他们两个。2.对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,.

2020-06-02 15:19:58 181

原创 算法 (一) : 算法简介

算法简介 什么是算法 ➢一系列的计算步骤,用来将输入数据转化成输出结果 ➢ ●算法的意义 ➢用于解决特定的问题 ➢解决同一个问题的不同算法的效率常常相差非常大,这种差距的影响往往比硬件和软件方面的差距还要大 ➢ ●比较常听到的较为简单的算法 ➢排序算法 ➢加密算法 ➢...... 算法的特征 有穷性(Finiteness) ➢执行有限个步骤之后终止 ● ●确切性(Definiteness) ➢每一步有确切的定义 ●...

2020-06-02 15:15:04 176

原创 Category&& Extension&& objc_setAssociatedObject

runtime-给系统已有类添加属性在没有接触runtime之前,我们接触到的能给类进行扩展的方法有类目(category)和延展(extension)两种,他们各自的特点如下:Category用于给class及其subclass添加新的方法有自己单独的 .h 和 .m 文件用于添加新方法,而不能添加新属性(property)ExtensionExt

2016-09-05 16:34:27 248

原创 iOS 通过定位获取常驻后台

iOS 通过定位获取常驻后台 http://www.jianshu.com/p/50ff7a3a0fcd

2016-08-26 17:02:31 571

空空如也

空空如也

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

TA关注的人

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