首页
学习
活动
专区
工具
TVP
发布

nnngu

专栏作者
83
文章
91836
阅读量
27
订阅数
PHP_AUTH_USER 和 PHP_AUTH_PW 实现登录验证
其中的 PHP_AUTH_USER 和 PHP_AUTH_PW 不知道是什么东西,网上查了一下,发现挺有意思的,现在记录总结一下。
nnngu
2020-07-03
2.4K0
类型限定符
extern:声明一个变量,extern 声明的变量没有建立存储空间 const:定义一个常量,常量的值不能修改 volatile:防止编译器优化代码 register:定义寄存器变量,提高效率。如果 CPU 有空闲寄存器,register 就生效,如果没有空闲寄存器,那么 register 无效。
nnngu
2019-10-28
5640
算法09 五大查找之:哈希查找
前面的几篇文章分别总结了:顺序查找、二分查找、索引查找、二叉排序树。这一篇文章要总结的是五大查找的最后一个:哈希查找(也称为散列查找)。提起哈希,我的第一印象就是java中的Hashtable类,它是由 key/value 的键值对组成的集合,它就是应用了哈希技术。 那什么是哈希查找呢?在弄清楚什么是哈希查找之前,我们要弄清楚哈希技术,哈希技术是在记录的存储位置和记录的 key 之间建立一个确定的映射 f(),使得每个 key 对应一个存储位置 f(key)。若查找集合中存在这个记录,则必定在 f(key)
nnngu
2018-03-15
6690
算法08 五大查找之:二叉排序树(BSTree)
上一篇总结了索引查找,这一篇要总结的是二叉排序树(Binary Sort Tree),又称为二叉查找树(Binary Search Tree) ,即BSTree。 构造一棵二叉排序树的目的,其实并不是为了排序,而是为了提高查找和插入删除的效率。 什么是二叉排序树呢?二叉排序树具有以下几个特点。 (1)若根节点有左子树,则左子树的所有节点都比根节点小。 (2)若根节点有右子树,则右子树的所有节点都比根节点大。 (3)根节点的左,右子树也分别是二叉排序树。 1、二叉排序树的图示 下面是二叉排序树的图示,通过它可
nnngu
2018-03-15
6020
算法06 五大查找之:二分查找
二分查找属于顺序表查找,二分查找也称为折半查找。二分查找的时间复杂度为O(log2n)   1、二分查找的定义 什么是二分查找呢?二分查找的基本思想是:在有序表中,取中间元素作为比较对象,若给定值与中间元素相等,则查找成功;若给定值小于中间元素,则在中间元素的左半区继续查找;若给定值大于中间元素,则在中间元素的右半区继续查找。不断重复上述过程,直到找到为止。 从二分查找的定义我们可以看出,使用二分查找有两个前提条件: (1)待查找的列表必须有序。 (2)必须使用线性表的顺序存储结构来存储数据。 2、二分查找
nnngu
2018-03-15
7060
算法05 五大查找之:顺序查找
这一篇要介绍的是算法中的查找算法。查找在我们生活中无处不在,比如查公交,查机票,查酒店等等。 首先看一下查找的分类。如下图: 那么这一篇要总结的是顺序表中的顺序查找。 什么是顺序查找呢?顺序查找就是遍
nnngu
2018-03-15
7790
算法02 七大排序之:直接选择排序和堆排序
上一篇总结了交换排序的冒泡排序和快速排序。这一篇要总结的是选择排序,选择排序分为直接选择排序和堆排序,主要从以下几点进行总结。 1、直接选择排序及算法实现 2、堆排序及算法实现 1、直接选择排序及算法实现 直接选择排序(Straight Select Sort) 是一种简单的排序方法,它的基本思想是:通过length-1 趟元素之间的比较,从length-i+1个元素中选出最小的元素,并和第i个元素交换位置。直接选择排序的最坏时间复杂度为O(n2),平均时间复杂度为O(n2)    下图展示了直接选择排序的
nnngu
2018-03-15
6140
算法01 七大排序之:冒泡排序和快速排序
排序是我们生活中经常会面对的问题。同学们做操时会按照从矮到高排列;老师查看上课出勤情况时,会按学生学号顺序点名;高考录取时,会按成绩总分降序依次录取等。排序是数据处理中经常使用的一种重要的运算,它在我们的程序开发中承担着非常重要的角色。 排序分为以下四类共七种排序方法: 交换排序:   ① 冒泡排序    ② 快速排序 选择排序:   ③ 直接选择排序    ④ 堆排序 插入排序:   ⑤ 直接插入排序    ⑥ 希尔排序 合并排序:   ⑦ 合并排序 这篇文章主要总结的是交换排序(即冒泡排序和快速排序),
nnngu
2018-03-15
6070
数据结构04 链表的面试题
这篇文章包含的链表面试题如下: 1、从尾到头打印单向链表 2、查找单向链表中的倒数第k个节点 3、反转一个单向链表【出现频率较高】 4、合并两个有序的单向链表,合并之后的链表依然有序【出现频率较高】 5、找出两个单向链表相交的第一个公共节点 前期代码准备: 下面这两个类的详细解析可以参考我的上一篇文章:数据结构3 线性表之链表 节点类:Node.java /** * 节点类 */ public class Node { Object element; // 数据域 Node next;
nnngu
2018-03-15
8220
数据结构03 线性表之链表
上一篇总结完了顺序表,这一篇要总结的是线性表之中的链表。我将会从以下几点进行总结: 1、为什么要使用链表?  2、链表的存储结构?  3、链表的常用操作代码实现? 1、为什么要使用链表 通过上一篇的学习,我们知道顺序表存在一些问题,主要有以下两个方面。 1、顺序表的长度是固定的,如果超出分配的长度就会造成溢出,如果存放的数据太少就会造成空间浪费。  2、在插入元素和删除元素时(尤其插入和删除的位置不在尾部时),会移动大量的元素,造成性能和效率低下。 基于以上问题,使用链表可以很好地避免顺序表中出现的问题。这
nnngu
2018-03-15
6960
数据结构02 线性表之顺序表
这篇文章主要总结线性表之顺序表的相关操作,主要分以下几个部分来总结。 1、线性表是什么?  2、线性表的两种存储结构?  3、顺序表的存储结构表示?   4、顺序表的常见操作和代码实现? 1、线性表是什么  (1)线性表是最基本、最简单的一种数据结构。 (2)线性表中元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的。 (3)如果是一对多就用树来表示,如果多对多就用网状来表示。 (4)线性表具有以下几个特征:   ①有且只有一个“首”元素    ②有且只有一个“尾”
nnngu
2018-03-15
6830
没有更多了
社区活动
腾讯技术创作狂欢月
“码”上创作 21 天,分 10000 元奖品池!
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档