Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

排序算法之二分法(折半)插入排序算法

排序算法之二分法(折半)插入排序算法

基本思想折半插入排序的基本思想与直接插入排序一样,在插入第i(i≥1)个元素时,前面i-1个元素已经排好序。区别在于寻找插入位置的方法不同,折半插入排序是采用折半查找法来寻找插入位置的。 折半查找法的基本思路是:用待插元素的值与当前查找序列的中间元素的值进行比较,以当前查找序列的中间元素为分界,确定待插元素是在当前查找序列的左边还是右边,如果是在其左边,则以该左边序列为当前查找序列,右边也类似。按照上述方法,递归地处理新序列,直到当前查找序列的长度小...
Java注解(Annotation)详解

Java注解(Annotation)详解

基本概念什么是注解(Annotation) Annotation(注解)是JDK5.0及以后版本引入的。它可以用于创建文档,跟踪代码中的依赖性,甚至执行基本编译时检查。从某些方面来看,Annotation像一种修饰符一样,应用于包、类型、构造方法、方法、成员变量、参数以及本地变量的声明语句中。这些信息被存储在Annotation的”name=value”结构对中。更通俗的意思是为程序的元素(类、方法、成员变量等)加上更直观更明了的...
排序算法之三路划分的快速排序

排序算法之三路划分的快速排序

当待排序元素序列中有大量的重复排序码时,简单的快速排序算法的效率将会降到非常之低。一种直接的想法就是将待排序列分成三个子序列:一部分是排序码比基准元素排序码小的;一部分是与基准元素排序码等值的;一部分是比基准元素排序码大的,如下图所示:图1 快速排序的三路划分 但是,如果我们直接据此思想去编写实现算法的话,会让我们面临很大的困难。与基准元素等值的元素到底有多少?以及如何最快速有效地确定划分的边界?所以,完成这样的三路划分是非常困难的,甚至比两路划分过程更加...
iOS定位和位置信息获取

iOS定位和位置信息获取

要实现地图、导航功能,往往需要先熟悉定位功能,在iOS中通过Core Location框架进行定位操作。Core Location自身可以单独使用,和地图开发框架MapKit完全是独立的,但是往往地图开发要配合定位框架使用。在Core Location中主要包含了定位、地理编码(包括反编码)功能。定位是一个很常用的功能,如一些地图软件打开之后如果用户允许软件定位的话,那么打开软件后就会自动锁定到当前位置,如果用户手机移动那么当前位置也会跟随着变化。要实现这...
Yii2 实现修改密码功能

Yii2 实现修改密码功能

主要难点:1、密码加密 YII2对密码加密生成的结果是不同的,即用相同的初始密码在不同时间得到的加密结果不同,所以我们不能用常用的方法去验证密码是否正确(将密码加密后与数据库中的密码相比较)。YII2有自己的加密以及密码验证流程。 加密 $hash = Yii::$app->getSecurity()->generatePasswordHash("123456"]); 验证 Yii::$app->getSecurity()->...
Java数据结构-线性表之静态链表

Java数据结构-线性表之静态链表

静态链表的定义: 节点由一个一维数组和一个指针域组成,数组用来存放数据元素,而指针域里面的指针(又称游标)用来指向下一个节点的数组下标。这样的链表称之为静态链表。 链表中的数组第一个和最后一个位置需要特殊处理,不存数据。第一个位置(即数组0下标)的节点的指针用来存放备用链表的第一个节点的数组下标。最后一个位置(即数组长度MaxSize-1下标)的节点的指针用来存放指向有数值的第一个数据元素的数组下标,类似于单链表的头结点。静态链表的示例图: 下面举一个摘...
Java数据结构-线性表之循环链表

Java数据结构-线性表之循环链表

循环链表的定义:将单链表的尾节点的空指针改为指向头结点的指针,这样的单链表就变成单循环链表了,也叫循环链表。下面摘抄了《大话数据结构》中的一段分析。如下图: 解释: 循环链表里面的头结点和单链表里面的头结点是一样的,都是为了操作统一和方便而设定的,不是必须节点。这里为了方便操作还会进行一种改变,就是去掉循环链表的头指针,而增加一个指向循环链表尾部节点的尾指针。 这样相对来说可以通过O(1)时间访问到尾节点了,同时在进行循环链表合并操作时更加方便了。举一个在...
Java数据结构-线性表之双向链表

Java数据结构-线性表之双向链表

双向链表的定义:在单链表的基础上,给每个节点增加一个指针域,用来指向该节点的前驱节点,这样形成的链表称之为双向链表。 利用空间换时间。整个双向链表的形式如图所示:下面就摘了《大话数据结构》的插入操作演示: 需要注意的是保证链不要断掉,上述图中第3和第4步的顺序不要颠倒。 继续删除操作的演示: 双向链表也有循环链表,叫双向循环链表,介绍如下: 本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-07/120142.h...
Java数据结构-线性表之单链表LinkedList

Java数据结构-线性表之单链表LinkedList

线性表的链式存储结构,也称之为链式表,链表;链表的存储单元可以连续也可以不连续。 链表中的节点包含数据域和指针域,数据域为存储数据元素信息的域,指针域为存储直接后继位置(一般称为指针)的域。注意一个头结点和头指针的区别: 头指针:指向链表的第一个节点的指针,若链表有头结点,则是指向头结点的指针;头指针具有标识作用,所以常用头指针作为链表的名字;不论链表是否为空,头指针都不为空;是链表的必要元素。头结点:头结点是为了操作的统一和方便而设立的,放在第一个元素节...
<< 2321 2322 2323 2324 2325 2326 2327 2328 2329 2330 >>