![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
数据结构初阶
文章平均质量分 66
Le-Code
大一软工男一枚~
展开
-
数据结构——快速排序
上述为快速排序递归实现的主框架,发现与二叉树前序遍历规则非常像,大家在写递归框架时可想想二叉树前序遍历规则即可快速写出来,后序只需分析如何按照基准值来对区间中数据进行划分的方式即可。Hoare大佬的方法很好,奠定了我们快排的基础思想,但是,里面的坑实在是很多,稍有不慎算法就容易出错,后人因此提出了疑问并且继续优化了快速排序的代码,例如挖坑法。挖坑法的单趟排序跟Hoare版的可能大差不差,但是挖坑法会相比于Hoare版本更好理解。首先将我们的key的值存放起来,然后讲key值所在的位置挖空。原创 2024-05-11 17:10:37 · 438 阅读 · 0 评论 -
数据结构——希尔排序
希尔排序法又称缩小增量法。希尔排序法的基本思想是:先选定一个整数,把待排序文件中所有记录分成个组,所有距离为的记录分在同一组内,并对每一组内的记录进行排序。然后,取,重复上述分组和排序的工作。当gap=1时,所有记录在统一组内排好序。希尔排序分为两个步骤:1.预排序——接近有序(gap>1)2.插入排序(gap==1)1.预排序:比如先排红色组:再排蓝色组: 最后排绿色组: 代码分析:end的后一个输入往前插入: 依此类推 ,完成红色组的排序 依此类推,完成所有组的预排序 2.插入排序:当我们的g原创 2024-05-10 00:06:46 · 594 阅读 · 1 评论 -
数据结构——插入排序
直接插入排序是一种简单的插入排序法,其基本思想是:实际中我们玩扑克牌时,就用了插入排序的思想直接插入排序:当插入第i(i>=1)个元素时,前面的array[0],array[1],…,array[i-1]已经排好序,此时用array[i]的排序码与array[i-1],array[i-2],…的排序码顺序进行比较,找到插入位置即将array[i]插入,原来位置上的元素顺序后移时间复杂度分析://时间复杂度(最坏):O(N^2)--有序。原创 2024-04-27 20:26:52 · 310 阅读 · 0 评论 -
数据结构——顺序表
/断言i++)//逐个打印。原创 2024-03-23 00:53:02 · 1923 阅读 · 4 评论 -
空间复杂度的OJ练习——轮转数组
时间复杂度O(N^2)原创 2024-03-10 01:06:35 · 500 阅读 · 13 评论 -
数据结构——算法的空间复杂度
的空间,因为这个也没太大意义,所以空间复杂度算的是变量的个数。空间复杂度也是一个数学表达式,是对一个算法在运行过程中。空间复杂度计算规则基本跟实践复杂度类似,也使用。空间复杂度不是程序占用了多少。原创 2024-03-09 15:30:37 · 455 阅读 · 1 评论 -
时间复杂度的OJ练习——面试题:消失的数字
求和i++)return num;原创 2024-03-09 13:46:25 · 395 阅读 · 0 评论 -
数据结构——算法的时间复杂度
如何衡量一个算法的好坏呢?斐波那契数列的递归实现方式非常简洁,但简洁一定好吗?那该如何衡量其好与坏呢?原创 2024-03-09 01:32:42 · 2417 阅读 · 1 评论