摘要:
哈希表的基本介绍 散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通 过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组 叫做散列表 google 公司的一个上机题: 有一个公司, 阅读全文
posted @ 2021-07-17 15:01
HJ0101
阅读(88)
评论(0)
推荐(0)
摘要:
查找算法介绍 在 java 中,我们常用的查找有四种: 1) 顺序(线性)查找 2) 二分查找/折半查找 3) 插值查找 4) 斐波那契查找 线性查找算法 有一个数列: {1,8, 10, 89, 1000, 1234} ,判断数列中是否包含此名称【顺序查找】 要求: 如果找到了,就提 示找到,并给 阅读全文
posted @ 2021-07-17 14:59
HJ0101
阅读(89)
评论(0)
推荐(0)
摘要:
一张排序算法的比较图 相关术语解释: 1) 稳定:如果 a 原本在 b 前面,而 a=b,排序之后 a 仍然在 b 的前面; 2) 不稳定:如果 a 原本在 b 的前面,而 a=b,排序之后 a 可能会出现在 b 的后面; 3) 内排序:所有排序操作都在内存中完成; 4) 外排序:由于数据太大,因此 阅读全文
posted @ 2021-07-17 14:50
HJ0101
阅读(119)
评论(0)
推荐(0)
摘要:
基数排序(桶排序)介绍: 1) 基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或 bin sort,顾 名思义,它是通过键值的各个位的值,将要排序的元素分配至某些“桶”中,达到排序的作用 2) 基数排序法是属于稳定性 阅读全文
posted @ 2021-07-17 14:49
HJ0101
阅读(520)
评论(0)
推荐(0)
摘要:
归并排序介绍: 归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的分治(divide-and-conquer) 策略(分治法将问题分(divide)成一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修 补"在一起,即分而治之)。 归并排序 阅读全文
posted @ 2021-07-17 14:32
HJ0101
阅读(109)
评论(0)
推荐(0)
摘要:
快速排序法介绍: 快速排序(Quicksort)是对冒泡排序的一种改进。基本思想是:通过一趟排序将要排序的数据分割成独立的两 部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排 序,整个排序过程可以递归进行,以此达到整个数据变成有序序列 快速排序法示 阅读全文
posted @ 2021-07-17 14:30
HJ0101
阅读(497)
评论(0)
推荐(0)
摘要:
希尔排序法介绍 希尔排序是希尔(Donald Shell)于 1959 年提出的一种排序算法。希尔排序也是一种插入排序,它是简单插入 排序经过改进之后的一个更高效的版本,也称为缩小增量排序。 简单插入排序存在的问题 我们看简单的插入排序可能存在的问题. 数组 arr = {2,3,4,5,6,1} 阅读全文
posted @ 2021-07-17 14:27
HJ0101
阅读(220)
评论(0)
推荐(0)
摘要:
插入排序法介绍 插入式排序属于内部排序法,是对于欲排序的元素以插入的方式找寻该元素的适当位置,以达到排序的目的。 插入排序(Insertion Sorting)的基本思想是:把 n 个待排序的元素看成为一个有序表和一个无序表,开始时有 序表中只包含一个元素,无序表中包含有 n-1 个元素,排序过程中 阅读全文
posted @ 2021-07-17 14:23
HJ0101
阅读(124)
评论(0)
推荐(0)
摘要:
基本介绍 选择式排序也属于内部排序法,是从欲排序的数据中,按指定的规则选出某一元素,再依规定交换位置后达到 排序的目的 选择排序(select sorting)也是一种简单的排序方法。它的基本思想是:第一次从 arr[0]~arr[n-1]中选取最小值, 与 arr[0]交换,第二次从 arr[1] 阅读全文
posted @ 2021-07-17 14:20
HJ0101
阅读(186)
评论(0)
推荐(0)
摘要:
基本介绍 冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始),依次比较 相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐向上冒。 优化: 因为排序的过程中,各元素不断接近自己的位置,如果一趟比较下来没有进行过 阅读全文
posted @ 2021-07-17 14:17
HJ0101
阅读(220)
评论(0)
推荐(0)
摘要:
排序算法的介绍 排序也称排序算法(Sort Algorithm),排序是将一组数据,依指定的顺序进行排列的过程。 排序的分类: 1) 内部排序: 指将需要处理的所有数据都加载到内部存储器(内存)中进行排序。 2) 外部排序法: 数据量过大,无法全部加载到内存中,需要借助外部存储(文件等)进行排序。 阅读全文
posted @ 2021-07-17 14:13
HJ0101
阅读(323)
评论(0)
推荐(0)
摘要:
递归的概念 简单的说: 递归就是方法自己调用自己,每次调用时传入不同的变量.递归有助于编程者解决复杂的问题,同时 可以让代码变得简洁。 递归调用机制 代码实现简单递归 点击查看代码 package com.atguigu.recursion; public class RecursionTest { 阅读全文
posted @ 2021-07-17 14:05
HJ0101
阅读(555)
评论(0)
推荐(0)
摘要:
栈的介绍 1) 栈的英文为(stack) 2) 栈是一个先入后出(FILO-First In Last Out)的有序列表。 3) 栈(stack)是限制线性表中元素的插入和删除只能在线性表的同一端进行的一种特殊线性表。允许插入和删除的 一端,为变化的一端,称为栈顶(Top),另一端为固定的一端,称 阅读全文
posted @ 2021-07-17 13:57
HJ0101
阅读(219)
评论(0)
推荐(0)
摘要:
链表(Linked List)介绍 链表是有序的列表,但是它在内存中是存储如下 1) 链表是以节点的方式来存储,是链式存储 2) 每个节点包含 data 域, next 域:指向下一个节点. 3) 如图:发现链表的各个节点不一定是连续存储. 4) 链表分带头节点的链表和没有头节点的链表,根据实际的需 阅读全文
posted @ 2021-07-17 12:57
HJ0101
阅读(99)
评论(0)
推荐(0)
摘要:
队列介绍 1) 队列是一个有序列表,可以用数组或是链表来实现。 2) 遵循先入先出的原则。即:先存入队列的数据,要先取出。后存入的要后取出 3) 示意图:(使用数组模拟队列示意图) 队列本身是有序列表,若使用数组的结构来存储队列的数据,则队列数组的声明如下图, 其中 maxSize 是该队 列的最大 阅读全文
posted @ 2021-07-17 12:40
HJ0101
阅读(97)
评论(0)
推荐(0)
摘要:
稀疏 sparsearray 数组 编写的五子棋程序中,有存盘退出和续上盘的功能。 分析问题: 因为该二维数组的很多值是默认值 0, 因此记录了很多没有意义的数据.->稀疏数组。 当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保存该数组。 稀疏数组的处理方法是: 1) 阅读全文
posted @ 2021-07-17 12:32
HJ0101
阅读(30)
评论(0)
推荐(0)
摘要:
数据结构和算法的关系 数据 data 结构(structure)是一门研究组织数据方式的学科,有了编程语言也就有了数据结构.学好数据结构可以 编写出更加漂亮,更加有效率的代码。 要学习好数据结构就要多多考虑如何将生活中遇到的问题,用程序去实现解决. 程序 = 数据结构 + 算法 数据结构是算法的基础 阅读全文
posted @ 2021-07-17 12:15
HJ0101
阅读(162)
评论(0)
推荐(0)

浙公网安备 33010602011771号