数据结构与算法
数据结构以及算法的相关知识点
新征程,再出发
对于可控的事情,保存谨慎;对于不可控的事情,保持乐观。
展开
-
常见的数据结构
数据结构:栈,队列,链表,散列表,排序二叉树,前缀树,红黑树,B-tree,位图原创 2023-02-18 21:55:45 · 504 阅读 · 0 评论 -
快速排序(Quicksort)算法
通过一趟排序将要排序的数据分割成独立的两部分,其中一部分的所有数据都比另外一部分的所有数据都要小,然后再按此方法对这两部分数据分别进行快速排序,整个排序过程可以递归进行,以此达到整个数据变成有序序列。(从后往前找小的往前放,然后从前往后找大的往后放,交替进行,直到 i == j )快排在完全无序的情况下效果最好,时间复杂度为O(nlogn),在有序情况下效果最差,时间复杂度为O(n^2)原创 2022-08-24 22:01:10 · 135 阅读 · 0 评论 -
希尔排序(缩小增量排序)算法
希尔排序是把记录按下标的一定增量分组,对每组使用直接插入排序算法排序;随着增量逐渐减少,每组包含的关键词越来越多,当增量减至1时,整个文件恰被分成一组,算法便终止。。原创 2022-08-23 22:09:20 · 77 阅读 · 0 评论 -
插入排序(直接插入排序)算法
插入排序(直接插入排序)算法。原创 2022-08-22 22:29:14 · 120 阅读 · 0 评论 -
选择排序算法
算法描述将数组分为两个子集,排序的和未排序的,每一轮从未排序的子集中选出最小的元素,放入排序子集重复以上步骤,直到整个数组有序实例/** * @author pzz * @date 2022/5/25 * 选择排序 */public class SelectionSort { public static void main(String[] args) { int[] a = {18,23, 19, 9, 23, 15}; selection(a原创 2022-05-27 16:09:19 · 83 阅读 · 0 评论 -
冒泡排序算法
冒泡排序概述:依次比较相邻的两个数,将大的数往后移。算法描述依次比较数组中相邻两个元素大小,若 a[j] > a[j+1],则交换两个元素,两两都比较一遍称为一轮冒泡,结果是让最大的元素排至最后重复以上步骤,直到整个数组有序冒泡排序算法的原理如下:比较相邻的元素。如果第一个比第二个大,就交换他们两个。对每一对相邻元素做同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。针对所有的元素重复以上的步骤,除了最后一个。 持续每次对越来越少的元素重复上面的步骤原创 2022-05-25 00:39:02 · 113 阅读 · 0 评论 -
二分查找算法
二分查找算法在计算机科学中,折半搜索,也称二分查找算法、二分搜索,是一种在有序数组中查找某一特定元素的搜索算法。搜素过程从数组的中间元素开始,如果中间元素正好是要查找的元素,则搜素过程结束;如果某一特定元素大于或者小于中间元素,则在数组大于或小于中间元素的那一半中查找,而且跟开始一样从中间元素开始比较。如果在某一步骤数组为空,则代表找不到。这种搜索算法每一次比较都使搜索范围缩小一半。时间复杂度为:O(log2n)算法描述前提:有已排序数组 A(假设已经做好)定义左边界 L、右边界 R原创 2022-05-24 23:25:18 · 817 阅读 · 0 评论