05 2020 档案

摘要:希尔排序 概念 希尔排序,也称递减增量排序算法,是插入排序的一种更高效的改进版本。但希尔排序是非稳定排序算法。希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。 步骤 在网上看到一个很不 阅读全文
posted @ 2020-05-27 23:01 发育中的程序猿 阅读(185) 评论(0) 推荐(0) 编辑
摘要:插入排序 概念 插入排序是一种最简单直观的排序算法,它的工作原理是通过构建有序序列,对于未排序数据,在已排序序列中从后向前扫描,找到相应位置并插入。它的原理有点像平时打扑克牌时,把刚拿到的扑克牌插入到手牌里。 步骤 将第一待排序序列第一个元素看做一个有序序列,把第二个元素到最后一个元素当成是未排序序 阅读全文
posted @ 2020-05-26 16:46 发育中的程序猿 阅读(96) 评论(0) 推荐(0) 编辑
摘要:选择排序(Selection Sort) 概念 选择排序就是从头至尾扫描序列,找出最小的一个元素,和第一个元素交换,接着从剩下的元素中继续这种选择和交换方式,最终得到一个有序序列。它是一种简单直观的排序算法,无论什么数据进去都是 O(n²) 的时间复杂度。所以用到它的时候,数据规模越小越好。好处就是 阅读全文
posted @ 2020-05-26 15:36 发育中的程序猿 阅读(221) 评论(0) 推荐(0) 编辑
摘要:冒泡排序(Bubble Sort) 概念 顾名思义,冒泡排序就像水中冒泡一样,较大的数沉下去,较小的数慢慢冒起来;它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成 步骤 比较相邻的元素。如果第一 阅读全文
posted @ 2020-05-26 11:14 发育中的程序猿 阅读(131) 评论(0) 推荐(0) 编辑
摘要:堆(heap) 定义 堆是一种比较特殊的数据结构,它是利用完全二叉树的结构来维护一组数据,可以看做是一棵树的数组对象,说白了,堆就是用数组实现的二叉树。根据根节点的值还分为大根堆和小根堆。在最大堆中,父节点的值比每一个子节点的值都要大。在最小堆中,父节点的值比每一个子节点的值都要小。例如下图就是一个 阅读全文
posted @ 2020-05-24 15:01 发育中的程序猿 阅读(166) 评论(0) 推荐(0) 编辑
摘要:哈希表(hash table) 定义 哈希表,也叫散列表,是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数(哈希函数),存放记录的数组叫做散列表(哈希表)。 详解 记录的存储位置=f(ke 阅读全文
posted @ 2020-05-23 22:48 发育中的程序猿 阅读(310) 评论(0) 推荐(0) 编辑
摘要:树(tree) 定义 树是一种数据结构,它是由n(n>=1)个有限节点组成一个具有层次关系的集合。把它叫做 “树” 是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。树结构是一种非线性存储结构,存储的是具有“一对多”关系的数据元素的集合 树的特点 每个节点有零个或多个子节点; 没有父节点 阅读全文
posted @ 2020-05-21 16:42 发育中的程序猿 阅读(284) 评论(0) 推荐(0) 编辑
摘要:链表(linkedlist) 定义 链表是一系列的存储数据元素的单元通过指针串接起来形成的,因此,链表中的每个单元至少有两个域:数据域和指针域。根据指针的指向,链表能形成不同的结构:单向链表,双向链表,循环链表 单向链表 单向链表拥有一个数据域和一个指针域;数据域用于存储数据元素,且都是通过一个 O 阅读全文
posted @ 2020-05-19 23:28 发育中的程序猿 阅读(238) 评论(0) 推荐(0) 编辑
摘要:队列(queue) 定义 队列与栈一样,也是一种对数据的"存"和"取"有严格要求的线性存储结构。不同的是,队列可以在一端添加元素,在另一端取出元素,也就是先进先出。 进数据的一端为队尾,出数据的一端为队头,数据元素进队列的过程称为入队,出队列的过程称为出队。 顺序队列和链队列 顺序队列:是基于数组来 阅读全文
posted @ 2020-05-19 15:53 发育中的程序猿 阅读(112) 评论(0) 推荐(0) 编辑
摘要:栈(stack) 定义 栈是一种特殊的线性表,仅能在线性表的一端操作,栈顶允许操作,栈底不允许操作。栈的特点是:先进后出 进栈和出栈 基于栈的结构特点,有以下两种操作: 进栈:也叫压栈,向栈中存放元素 出栈:也叫弹栈,从栈中取出指定元素 顺序栈和链栈 顺序栈:采用顺序存储结构可以模拟栈存储数据的特点 阅读全文
posted @ 2020-05-19 15:07 发育中的程序猿 阅读(168) 评论(0) 推荐(0) 编辑
摘要:线性表 定义 线性表,全名为线性存储结构,是n个具有相同特性的数据元素的有限序列。线性表中数据元素之间的关系是一对一的关系,即除了第一个和最后一个数据元素之外,其它数据元素都是首尾相接的。线性表是最基本、最简单的数据结构。 使用线性表存储数据可以理解为:把所有数据用一根线串起来,再存储到物理空间中; 阅读全文
posted @ 2020-05-19 14:36 发育中的程序猿 阅读(226) 评论(0) 推荐(0) 编辑
摘要:数组(Array) 概念 同一种类型数据的集合。其实数组就是一个容器。数组的本质就是堆内存中的一块连续的存储空间。 定义 动态初始化命名:数据类型 [ ] 数组名 = new 数据类型 [数组的长度] int[] array = new int[5]; 静态初始化命名:数据类型 [ ] 数组名 = 阅读全文
posted @ 2020-05-18 11:40 发育中的程序猿 阅读(159) 评论(0) 推荐(0) 编辑