
数据结构
文章平均质量分 59
基本的数结构
AZHOUN
这个作者很懒,什么都没留下…
展开
-
java - 归并排序
归并排序是一种常见的排序算法,也是一种分治策略的典型应用。该算法的基本思想是将待排序的序列分成若干个子序列,然后递归地对这些子序列进行排序,最终将排好序的子序列合并成一个有序序列。具体来说,归并排序的过程可以分为两个阶段。第一个阶段是分解,即将原序列分成若干个长度相等的子序列,每个子序列再分成若干个长度相等的子序列,直到无法分解为止。第二个阶段是合并,即将已排好序的子序列合并成一个有序序列。原创 2023-11-25 09:55:23 · 188 阅读 · 0 评论 -
java - 快速排序
快速排序(QuickSort)是一种常用的排序算法,属于交换排序的一种。它的基本思想是通过一趟排序将待排序的记录分割成独立的两部分,其中一部分记录的关键字都比另一部分记录的关键字小,然后分别对这两部分记录继续进行排序,以达到整个序列有序的目的。从待排序序列中选择一个元素作为基准元素。通常选择序列的第一个元素,但也可以随机选择或者选择中间元素。将比基准元素小的元素移到基准元素的左边,将比基准元素大的元素移到基准元素的右边。基准元素在这一过程中已经找到了最终的位置,它左边的元素都比它小,右边的元素都比它大。原创 2023-11-24 16:26:10 · 239 阅读 · 0 评论 -
java - 二分查找
二分查找(Binary Search),也称为折半搜索或对数搜索,是一种在有序数组或列表中查找特定元素的算法。它的工作原理是将待查找的区间一分为二,并确定目标值位于哪个子区间中,然后通过不断缩小区间的范围来迭代查找,直到找到目标值或确定不存在目标值为止。二分查找的前提是要在有序数组或列表中进行查找,因为它需要根据中间元素的大小关系来决定接下来要查找的区间。初始化左右边界:将整个数组或列表的左边界设置为0,右边界设置为n-1,其中n是数组或列表的长度。原创 2023-11-25 17:26:32 · 167 阅读 · 0 评论 -
java - 插入排序
插入排序(Insertion sort)是一种简单直观的排序算法。它的基本思想是将待排序序列分为已排序和未排序两部分,初始时已排序部分只有一个元素,然后从未排序部分逐个取出元素并插入到已排序部分的正确位置,直到所有元素都插入完毕。从待排序序列中取出第一个元素,认为它已经是排好序的。取出下一个元素,在已排序的序列中从后向前扫描,将较大的元素向后移动,给当前元素找到合适的位置。重复步骤2,直到找到当前元素的正确位置。重复步骤2和步骤3,直到所有元素都插入完毕。原创 2023-11-24 11:00:09 · 574 阅读 · 0 评论 -
java - 冒泡排序
冒泡排序(Bubble sort)是一种简单的排序算法,其基本思想是通过相邻元素的比较和交换,将较大的元素逐渐交换到序列的一端,从而达到排序的目的。从序列的第一个元素开始,依次比较相邻的两个元素。如果它们的顺序不正确(比如当前元素大于下一个元素),则进行交换,将较大的元素向序列的末尾移动。继续向后遍历序列,重复进行相邻元素的比较和交换操作,直到完成一轮遍历。重复上述步骤,直到序列排序完成,即没有发生任何元素交换的情况。原创 2023-11-24 10:35:05 · 109 阅读 · 0 评论 -
java - 选择排序
选择排序(Selection sort)是一种简单直观的排序算法。它的基本思想是每次从待排序的元素中选择最小(或最大)的元素,将其放到已排序序列的末尾,直到所有元素排序完成。首先,在待排序序列中找到最小(或最大)的元素,将其与序列的第一个元素进行交换。接着,在剩下的未排序序列中继续执行上述操作,即找到最小(或最大)的元素,将其与序列的第二个元素进行交换。重复上述步骤,直到所有元素排序完成。选择排序的时间复杂度为O(n^2),其中n为待排序序列的长度。原创 2023-11-24 10:06:13 · 110 阅读 · 0 评论