摘要: 哈希表 1. 哈希表基本介绍 散列表(Hash Table,也叫哈希表),是根据关键码值(Key Value)而直接进行访问的数据结构。也即是说,它通过把关键码值映射到表中的一个位置来访问记录,以加快查找的速度。这个映射函数叫做散列函数,存放记录的数组叫做散列表。 哈希表的内存布局(数组+链表) 2 阅读全文
posted @ 2023-04-26 10:35 GaoakaJie 阅读(105) 评论(0) 推荐(0)
摘要: 查找算法 1. 线性查找 线性查找(Order Search)是最简单的一种查找算法,直接从头到尾遍历,直至找到要查找的值为止。 1.1 代码实现 package com.algorithm; /** * @author SnkrGao * @create 2023-04-20 19:52 */ p 阅读全文
posted @ 2023-04-21 21:29 GaoakaJie 阅读(75) 评论(0) 推荐(0)
摘要: 基数排序Radix Sort 1. Radix Sort介绍 Radix Sort属于“分配式排序”(Distribution Sort),又称“桶子法”(Bucket Sort),其是通过比较待排序序列的所有元素的各个位的值,将元素分配至“桶”中,以达到排序的目的。Radix Sort是一种效率较 阅读全文
posted @ 2023-04-18 17:35 GaoakaJie 阅读(343) 评论(0) 推荐(0)
摘要: 归并排序Merge Sort 1. Merge Sort介绍 Merge Sort是利用归并的思想实现的排序算法,该算法采用经典的分治策略(divide-and-conquer),是一种稳定的排序算法。分治法是将问题分(divide)为一些小的问题然后递归求解,而治(conquer)的阶段则将分的阶 阅读全文
posted @ 2023-04-16 13:09 GaoakaJie 阅读(160) 评论(0) 推荐(0)
摘要: 排序算法-插入排序 1. 直接插入排序Insert Sort 1.1 Insert Sort介绍 Insert Sort也是一种简单的内部排序算法,其是对待排序的元素以插入的方式寻找该元素的适当位置,以达到排序的目的,是一种稳定的排序算法。 Inser Sort的基本思想是:将待排序序列看作一个有序 阅读全文
posted @ 2023-04-15 15:22 GaoakaJie 阅读(859) 评论(0) 推荐(0)
摘要: 排序算法-选择排序 1. 简单选择排序Select Sort 1.1 Select Sort介绍 简单选择排序(select Sort)的基本思想是:每一轮排序都从待排序的序列(无序区)中选取一个最小值,并将其与无序区的第一个元素进行交换,此时有序区长度 + 1,无序区长度 - 1。重复上述过程直至 阅读全文
posted @ 2023-04-14 15:57 GaoakaJie 阅读(2016) 评论(0) 推荐(0)
摘要: 排序算法-交换排序 1. 冒泡排序Bubble Sort 1.1 Bubble Sort介绍 冒泡排序(Bubble Sort)的基本思想是:通过对待排序的序列进行从左往右(即从下标较小的元素开始),依次比较相邻元素的值,若逆序则将其顺序交换。重复执行此过程直至没有需要交换的元素,也即说明改序列完成 阅读全文
posted @ 2023-04-13 13:42 GaoakaJie 阅读(175) 评论(0) 推荐(0)
摘要: 排序算法 1. 排序的分类 内部排序 指将需要处理的所有数据都加载到内部存储器中进行排序。 外部排序法 数据量过大时,无法全部加载到内存中,需要借助外部存储进行排序。 2. 算法的时间复杂度 2.1 概述 一般情况下,算法中的基本操作语句的重复执行次数是问题规模n的某个函数,用T(n)来表示。若有某 阅读全文
posted @ 2023-04-09 16:14 GaoakaJie 阅读(48) 评论(0) 推荐(0)
摘要: 八皇后问题 1. 八皇后问题介绍 八皇后问题是一个经典的回溯算法思想求解的问题,该问题是国际西洋棋棋手马克斯·贝瑟尔于1848年提出的:在8×8的国际象棋棋盘上摆放八个皇后,使其不能互相攻击,即:任意两个皇后都不能处于同一行、同一列或同一斜线上,求共有多少种摆法。 2. 回溯算法求解八皇后问题的思路 阅读全文
posted @ 2023-04-08 22:42 GaoakaJie 阅读(316) 评论(0) 推荐(0)
摘要: 递归算法 1. 何为递归 简而言之,就是方法自己调用自己,在每一次调用时传入不同的变量。递归有助于编程者在解决复杂问题的同时,让代码变得更加简洁。 2. 递归的应用场景 各种数学问题,eg.8皇后问题、汉诺塔、阶乘问题、迷宫问题、球和篮子的问题等; 各种算法中也经常用到递归的思想,eg.快排、归并排 阅读全文
posted @ 2023-04-08 17:06 GaoakaJie 阅读(131) 评论(0) 推荐(0)