算法与数据结构
文章平均质量分 57
bug根本写不完
屎山程序猿
展开
-
排序算法-选择排序详解
选择排序是一种简单直观的排序方法。每次将最小(最大)值通过比较交换到最前面来实现排序。原创 2023-09-28 15:48:56 · 171 阅读 · 0 评论 -
排序算法-希尔排序详解
希尔排序(Shell's Sort)是插入排序的一种又称“缩小增量排序”(Diminishing Increment Sort),是直接插入排序算法的一种更高效的改进版本。希尔排序是一种不稳定排序。原创 2023-09-27 10:51:24 · 717 阅读 · 0 评论 -
排序算法-插入排序
插入排序是指每次将一个待排序的元素与已排序的元素进行逐一比较,直到找到合适的位置按大小插入。原创 2023-09-21 21:59:51 · 59 阅读 · 0 评论 -
排序算法-冒泡排序
冒泡排序是一种基础的排序算法,由于是将元素向末尾移动,立起来看就像是泡泡从底部冒到顶端一样,故取名叫冒泡排序。原创 2023-09-20 22:07:33 · 72 阅读 · 0 评论 -
排序算法-快速排序详解
快速排序也使用了分治的思想,在待排序序列中选择一个基准值,然后将小于基准值的数字放在基准值左边,大于基准值的数字放在基准值右边,然后左右两边递归排序,整个排序过程中最关键部分就是寻找基准值在待排序序列中的索引位置。快速排序由于其时间复杂度优于大部分的排序算法,因而命名为快速排序。原创 2023-09-19 18:31:50 · 149 阅读 · 0 评论 -
排序算法-归并排序详解
归并排序采用分治的思想,采用先拆分再合并的方式,得到完全有序的序列。归并排序属于稳定排序。原创 2023-09-15 17:55:35 · 84 阅读 · 0 评论 -
排序算法-堆排序详解
堆:必须满足完全二叉树的定义大顶堆:父节点的值始终比左右子节点的值都要大,且堆顶的值最大。大顶堆如下图所示:如上图:我们构建了一个大顶堆,任何一个节点都比自己的左右子节点的值要大,但不要求左右子节点之间的大小关系,堆顶的值最大,然后根据堆构建一个数组[16,14,10,8,7,9,3,2,4,1],可以看出该数组是由二叉树的层序遍历得到的。大顶堆的性质:1、对于下标为i的节点,它的父节点的下标为(i-1)/2;原创 2023-09-07 20:42:59 · 65 阅读 · 0 评论