![](https://img-blog.csdnimg.cn/20201014180756923.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 88
暗星涌动
我是陈冰安,Java 工程师,分享个人所得!
展开
-
Java与查找算法(5):哈希查找
哈希查找,也称为散列查找,是一种基于哈希表的查找算法。哈希表是一种数据结构,它将键(key)映射到值(value),使得查找某个键对应的值的时间复杂度为O(1)。哈希查找的过程就是将要查找的键通过哈希函数转换成哈希表中的索引,然后在索引对应的位置上查找值。因为哈希函数的映射是唯一的,所以哈希表中不会出现键冲突的情况。哈希函数通常是将键映射成一个整数,然后再将这个整数映射到哈希表中的索引。在实际应用中,哈希函数的设计往往需要考虑到具体的应用场景和数据特点,需要根据实际情况进行调整。原创 2023-05-29 21:48:34 · 2348 阅读 · 0 评论 -
Java 与查找算法(4):插值查找
插值查找是一种基于二分查找算法的优化算法,用于在有序数组中查找目标元素。与二分查找每次取中间位置的元素进行比较不同,插值查找根据目标元素与数组中最小值和最大值的比例来确定查找位置,从而尽可能地接近目标元素。插值查找算法的时间复杂度为O(log2(log2n)),比二分查找更快,但在数据分布不均匀的情况下可能会退化为O(n)。因此,插值查找适用于数据分布均匀的情况下进行查找。原创 2023-05-28 19:28:24 · 1058 阅读 · 0 评论 -
Java与查找算法(3):斐波那契查找
Java面试资料Java面试资料,涵盖:面试前准备,面试经验,面试真题等。原创 2023-05-26 23:26:03 · 1207 阅读 · 0 评论 -
Java 与查找算法(2)二分查找
二分查找,也称折半查找,是一种常见的查找算法。它的思想是将有序数组分成两部分,取中间位置的值与目标值进行比较,如果相等则返回该位置,如果目标值小于中间值,则在左半部分继续查找,否则在右半部分继续查找,直到找到目标值或者数组被遍历完。二分查找的时间复杂度为 O(log n),是一种高效的查找算法。但是它要求数组必须是有序的,因此在某些情况下,为了使用二分查找,需要先对数组进行排序。递归实现二分查找的核心思想是将数组不断地分成两半,直到找到目标值或者数组被遍历完。原创 2023-05-26 20:29:36 · 2221 阅读 · 0 评论 -
Java 与查找算法(1):顺序查找
顺序查找,也称为线性查找,是一种简单的查找算法,它从列表的开头开始逐一比较每个元素,直到找到目标元素或搜索到列表的末尾。顺序查找适用于小型列表或未排序的列表,但对于大型、有序的列表,它的效率较低。顺序查找的时间复杂度为O(n),其中n是列表的大小。在最坏情况下,需要遍历整个列表才能找到目标元素,因此效率较低。但是,它的优点是实现简单,适用于小型列表或未排序的列表。原创 2023-05-25 19:21:01 · 2009 阅读 · 0 评论 -
Java 与排序算法(7):堆排序
堆排序是一种基于比较的排序算法,它的基本思想是将待排序的元素构建成一个堆,然后依次将堆顶元素取出,放到已排序的序列中,直到堆中所有元素都被取出,最终得到一个有序的序列。堆是一种特殊的树形数据结构,它满足以下两个条件:堆是一颗完全二叉树。堆中每个节点的值都大于等于(或小于等于)其左右子节点的值,这种性质称为堆的性质。堆排序的基本步骤如下:构建堆:将待排序的元素构建成一个堆,可以使用数组来表示堆,数组中下标为 i 的元素的左子节点下标为 2i+1,右子节点下标为 2i+2。原创 2023-05-24 23:01:23 · 1930 阅读 · 0 评论 -
Java 与数据结构(6):快速排序
ChatGPT 中文指南(大全)内容包含:如何开通chatgpt、chatgpt的同类站点、prompts 、AI绘图、ChatGPT 工具、相关报告论文、ChatGPT应用项目等。原创 2023-05-24 19:14:05 · 1170 阅读 · 0 评论 -
Java 与排序算法(5):归并排序
归并排序(Merge Sort)是一种基于分治思想的排序算法。它将待排序的数组分成两个长度相等的子数组,然后对这两个子数组分别进行归并排序,最后将两个排好序的子数组合并成一个有序的数组。原创 2023-05-23 21:34:52 · 1599 阅读 · 0 评论 -
Java 与排序算法(4):希尔排序
希尔排序(Shell Sort)是插入排序的改进版,由 Donald Shell 在 1959 年提出。希尔排序通过将待排序序列分成多个子序列,分别进行插入排序,最后再进行一次整体的插入排序,从而提高了排序效率。希尔排序的基本思想是将待排序序列分成若干个子序列,对每个子序列进行插入排序,使得整个序列在插入排序的基础上更加有序。具体来说,希尔排序的实现过程如下:选择一个增量序列,通常为 n/2、n/4、n/8 等,其中 n 为待排序序列的长度。原创 2023-05-23 19:24:57 · 1265 阅读 · 0 评论 -
Java 与排序算法(3):插入排序
插入排序(Insertion Sort)是一种简单直观的排序算法,它的基本思想是将待排序序列分为已排序区间和未排序区间,然后每次从未排序区间取出一个元素,将其插入到已排序区间的合适位置中,使得插入后仍然保持已排序区间有序。重复这个过程,直到未排序区间为空,整个序列有序为止。原创 2023-05-22 21:57:17 · 2878 阅读 · 0 评论 -
Java 与排序算法(2):选择排序
选择排序(Selection Sort)是一种简单的排序算法,其基本思想是在待排序序列中选择最小(或最大)的元素,将其与序列的第一个元素交换位置,然后在剩余的元素中继续选择最小(或最大)的元素,将其与序列的第二个元素交换位置,以此类推,直到整个序列有序为止。选择排序的时间复杂度为 O(n^2),其中 n 是待排序序列的长度。虽然选择排序的时间复杂度较高,但是它的实现简单,容易理解,并且在某些特定场景下仍然有着广泛的应用。原创 2023-05-22 20:07:24 · 2000 阅读 · 0 评论 -
Java 与排序算法(1):冒泡排序
冒泡排序(Bubble Sort)是一种简单的排序算法,它的基本思想是通过不断交换相邻两个元素的位置,使得较大的元素逐渐往后移动,直到最后一个元素为止。冒泡排序的时间复杂度为On2,空间复杂度为O1,是一种稳定的排序算法。原创 2023-05-21 22:32:04 · 15097 阅读 · 0 评论