算法-排序
文章平均质量分 80
本模块包含有关排序算法的文章
appte_1219
这个作者很懒,什么都没留下…
展开
-
Java 中的桶排序-Bucket Sort
在本文中,我们将深入探讨。我们将从和单元测试我们的解决方案。最后,我们将了解存储桶排序的。原创 2023-11-17 18:29:56 · 9225 阅读 · 0 评论 -
Java 中的 希尔排序-Shell Sort
让我们首先描述 希尔排序算法,以便我们知道我们要实现什么。希尔排序基于 Insertion 排序算法,属于一组非常高效的算法。通常,该算法将原始集合分解为更小的子集,然后使用插入排序对每个子集进行排序。但是,它如何制作子集并不简单。它不会像我们预期的那样选择相邻元素来形成一个子集。相反,shell 排序使用所谓的间隔或间隙来创建子集。例如,如果我们有间隙 I,则意味着一个子集将包含 I 位置相隔的元素。首先,该算法对彼此相距较远的元素进行排序。然后,间隙变小,并比较更接近的元素。原创 2023-11-17 17:49:17 · 9154 阅读 · 0 评论 -
Java中的选择排序-Selection Sort
选择排序以 1 中的元素开头圣的位置一个未排序的数组,并扫描后续元素以**查找最小的元素。**一旦找到,最小的元素就会与 1 中的元素交换圣位置。然后,该算法继续处理 2 中的元素钕定位并扫描后续元素以找到 2 的索引钕最小的元素。找到后,第二小的元素将与 2 中的元素交换钕位置。这个过程一直持续到我们到达 n-1元素,将 n-1 中最小的元素第位置。最后一个元素自动落在 n-1 中迭代,从而对数组进行排序。我们找到最大的元素而不是最小的元素来按降序对数组进行排序。原创 2023-11-17 18:14:45 · 9198 阅读 · 0 评论 -
Java 中的冒泡排序-Bubble Sort
在这篇简短的文章中,我们将详细探讨冒泡排序算法,重点介绍一个 Java 实现。这是最直接的排序算法之一;核心思想是,如果数组的相邻元素顺序不正确,则不断交换它们,直到集合被排序。当我们迭代数据结构时,小项目会“冒泡”到列表的顶部。因此,该技术被称为气泡排序。由于排序是通过交换执行的,因此我们可以说它执行就地排序。此外,如果两个元素具有相同的值,则生成的数据将保留其顺序,这使其成为稳定的排序。原创 2023-11-17 16:52:45 · 9146 阅读 · 0 评论 -
Java 中的合并(归并)排序-Merge Sort
Java中的合并(归并)排序原创 2023-11-17 17:04:06 · 9283 阅读 · 0 评论 -
Java 中的堆排序-Heap Sort
在本教程中,堆排序基于堆数据结构。为了正确理解堆排序,我们将首先深入研究堆及其实现方式。原创 2023-11-17 17:42:25 · 9196 阅读 · 0 评论 -
Java 中的插入排序-Insertion Sort
在本教程中,我们将讨论插入排序是一种用于对少量项目进行排序的有效算法。这种方法基于纸牌玩家对扑克牌进行排序的方式。我们从空的左手开始,牌放在桌子上。然后,我们一次从桌子上取出一张卡片,并将其插入左手的正确位置。为了找到一张新牌的正确位置,我们将其与手中已经排序的一组牌进行比较,从右到左。让我们从了解伪代码形式的算法步骤开始。原创 2023-11-17 17:24:24 · 9214 阅读 · 0 评论 -
Java 中的计数排序-Counting Sort
像 Merge Sort 这样的通用排序算法对输入不做任何假设,因此在最坏的情况下它们无法击败 O(n log n)。相反,计数排序对输入有一个假设,使其成为线性时间排序算法。在本教程中,我们将熟悉计数排序的机制,然后在 Java 中实现它。原创 2023-11-17 18:06:54 · 9422 阅读 · 0 评论 -
Java 中的基数排序-Radix Sort
基数排序是一种排序算法,它根据数字的位置对数字进行排序。基本上,它使用数字中数字的位值。与大多数其他排序算法(例如合并排序、插入排序、冒泡排序)不同,它不会比较数字。基数排序使用稳定的排序算法作为子程序对数字进行排序。我们在这里使用了计数排序的变体作为子例程,它使用基数对每个位置的数字进行排序。计数排序是一种稳定的排序算法,在实践中效果很好。基数排序的工作原理是将数字从最低有效数字 (LSD) 排序到最高有效数字 (MSD)。我们还可以实现基数排序来处理来自 MSD 的数字。原创 2023-11-17 18:23:08 · 9293 阅读 · 0 评论 -
Java 中的快速排序算法实现-Quick sort
快速排序原创 2023-11-17 17:15:39 · 9160 阅读 · 0 评论