![](https://img-blog.csdnimg.cn/20201014180756925.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
算法
文章平均质量分 61
种时光的人
这个作者很懒,什么都没留下…
展开
-
【计数排序】一个效率极高还简单的排序算法
它的优势在于在对一定范围内的整数排序时,复杂度为O(n+k)(其中k是整数的范围),快于任何比较排序算法。计数排序的思想类似于哈希表中的直接定址法,在给定的一组序列中,先找出该序列中的最大值和最小值,从而确定需要开辟多大的辅助空间,每一个数在对应的辅助空间中都有唯一的下标。二、从头到尾遍历辅助空间的下标,如果它的数值不为0就将它次数个下标复制给原数组(因为下标代表原数组的值),又因为它是从头到尾遍历的,所以使用此种方法可以排序。一样大的空间,并记录原数组每个值的个数,类似于哈希的映射。原创 2024-04-25 20:12:08 · 319 阅读 · 0 评论 -
【算法精讲】一篇让你掌握前缀和算法(附图解和不少题目练习~~)
前缀和算法是一种用空间换时间的算法,他常常用于解决某些题目或者作为某些高级算法的组成部分。例如:让你求某个矩阵(一维)的子矩阵的最大值,如果使用暴力解法它的时间复杂度将会是O(n^2) ,但如果使用该算法就可以使其时间复杂度降低一个维度也就是O(N).原创 2024-03-17 20:21:22 · 3671 阅读 · 2 评论 -
【算法精讲】选择排序、堆排序(C语言)
直接插入排序是一种简单的排序算法,它将数组分为有序和无序两部分,和插入排序的思路有些类似。堆排序是直接选择排序的进阶版,他在其原本的思想上进行了优化。每次遍历找最大值和最小值,把最大值放后面,最小值放前面。下面的内容涉及一部分数据结构堆的知识,不适合新手学习。时间复杂度:O( N * logN)时间复杂度:O( N^2)原创 2024-01-27 11:43:54 · 382 阅读 · 0 评论 -
【去重算法】有序去重和无序去重,C语言版
2.如果两个指向的数大小是不同的,则维护空间++,并且把新的数加进去。2.不同的是判断是否重复,每一次判断都需要在已经去重的范围里循环一遍。1.双指针方法,一个用来遍历整体数组,另一个用来维护去重后的空间。纸上得来终觉浅,绝知此事要躬行。时间复杂度:O(N^2)时间复杂度:O(N)原创 2024-01-25 15:37:33 · 481 阅读 · 1 评论 -
【手撕排序算法】直接插入排序、希尔排序,有详细图解
直接插入排序是一种简单的排序方法,它的思路就像是插扑克牌一样,每次排序一个,最终排序完成。原创 2024-01-25 19:16:53 · 470 阅读 · 1 评论