Java数据结构和算法(十七)哈希表

哈希表散列表(Hash table,也叫哈希表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。实际问题有一个公司,当有新的员工来报道时,要求将该员工的信息加
数据结构 2021年02月21日 82次浏览

Java数据结构和算法(十六)查找算法

查找算法常用的查找算法:顺序(线性)查找二分查找/折半查找插值查找斐波那契查找线性查找算法有一个数列: {1,8, 10, 89, 1000, 1234} ,判断数列中是否包含此名称【顺序查找】 要求: 如果找到了,就提示找到,并给出下标值。public class SeqSearch { p
数据结构 2021年02月21日 84次浏览

Java数据结构和算法(十五)排序算法对比

比较排序算法平均时间复杂度最好情况最坏情况空间复杂度排序方式稳定性冒泡排序$O(n^{2})$$O(n)$$O(n^{2})$$O(1)$In-place稳定选择排序$O(n^{2})$$O(n^{2})$$O(n^{2})$$O(1)$In-place不稳定插入排序$O(n^{2})$$O(n)$
数据结构 2021年02月21日 75次浏览

Java数据结构和算法(十四)归并排序

介绍归并排序(MERGE-SORT)是利用归并的思想实现的排序方法,该算法采用经典的 分治 (divide-and-conquer )策略(分治法将问题分(divide)成一些 小的问题然后递归求解,而治(conquer)的阶段则将分的阶段得到的各答案"修补"在一起,即分而治之)
数据结构 2021年02月21日 80次浏览

Java数据结构和算法(十三)基数排序

基数排序(桶排序)介绍:基数排序(radix sort)属于“分配式排序”(distribution sort),又称“桶子法”(bucket sort)或 bin sort,顾名思义,它是通过键值的各个位的值,将要排序的元素分配至某些“桶”中,达到排序的作用。基数排序法是属于稳定性的排序,基数排序
数据结构 2021年02月21日 89次浏览

Java数据结构和算法(十二)快速排序

介绍:快速排序(Quicksort)是对 冒泡排序的一种改进。基本思想是:通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序, 整个排序过程可以递归进行,以此达到整个数据变成有序序列。示意图:代码实现/**
数据结构 2021年02月21日 79次浏览

Java数据结构和算法(十一)希尔排序

简单插入排序存在的问题我们看简单的插入排序可能存在的问题.数组 arr = {2,3,4,5,6,1} 这时需要插入的数 1( 最小), 这样的过程是:{2,3,4,5,6,6}{2,3,4,5,5,6}{2,3,4,4,5,6}{2,3,3,4,5,6}{2,2,3,4,5,6}{1,2,3,4,
数据结构 2021年02月21日 75次浏览

Java数据结构和算法(十)插入排序

7 插入排序7.1 插入排序法介绍:插入式排序属于内部排序法,是对于欲排序的元素以插入的方式找寻该元素的适当位置,以达到排序的目的。7.2 插入排序法思想插入排序(Insertion Sorting)的基本思想是:把 n 个待排序的元素看成为一个有序表和一个无序表,开始时 有序表中只包含一个元素,
数据结构 2021年02月21日 76次浏览

Java数据结构和算法(九)选择排序

6 选择排序6.1 基本介绍选择式排序也属于内部排序法,是从排序的数据中,按指定的规则选出某一元素,再依规定交换位置后达到排序的目的。6.2 选择排序思想:选择排序(select sorting)也是一种简单的排序方法。它的基本思想是:第一次从 arr[0]~arr[n-1]中选取最小值,与 arr
数据结构 2021年02月21日 71次浏览

Java数据结构和算法(八)冒泡排序

冒泡排序(Bubble Sorting)的基本思想是:通过对待排序序列从前向后(从下标较小的元素开始), 依次比较相邻元素的值,若发现逆序则交换,使值较大的元素逐渐从前移向后部,就象水底下的气泡一样逐渐向上冒。一步一步实现冒泡排序:public class BubbleSort { publi
数据结构 2021年02月21日 76次浏览