logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

【数据结构】筛选法建堆

给你一个顺序表或数组(一串数据),通常来说建堆有两种方法一种**堆向上调整算法**,一种**堆向下调整算法建堆**也就是**筛选法**建堆。筛选法建堆是一种快速建堆的方法,它是在堆排序算法中使用的。这种方法的基本思想是通过不断筛选节点,如果建大堆就将大的节点向上筛选,小的节点向下筛选,小堆就反之,最终得到一个有序的堆。

文章图片
#数据结构#c语言#c++
【Linux】日志设计模式与实现

计算机中的日志是记录系统和软件运行中发生事件的文件,主要作用是监控运行状态、记录异常信息,帮助快速定位问题并⽀持程序员进⾏问题修复。它是系统维护、故障排查和安全管理的重要工具。

文章图片
#linux#设计模式#运维
数据结构——排序之冒泡排序

冒泡排序(BubbleSort)是一种计算机科学领域的较简单的排序算法。它的基本思想是通过重复遍历待排序的数据集,并依次比较相邻的两个数据项,如果它们的顺序错误则进行交换。这个过程会持续重复直到所有相邻的数据项都已经交换完毕,此时说明该数据集已经排好序。冒泡排序的名称来源于排序过程中,较小的数据项会被逐渐“浮”到数组顶部,这个过程就像碳酸饮料中二氧化碳气泡最终会上浮到顶部的现象一样。因此,这种排序

文章图片
#数据结构#排序算法#算法 +1
【C++深度探索】unordered_set、unordered_map封装

unordered_map和unordered_set的底层都是使用哈希表来实现的,然后在外面套了一层壳,为了能够更好的实现代码复用,我们对哈希表进行了很多修改还使用了仿函数,封装了普通迭代器和const迭代器等,最终成功对unordered_map和unordered_set实现了封装

文章图片
#c++#java#redis
数据结构——lesson10排序之插入排序

元素集合越接近有序,直接插入排序算法的时间效率越高时间复杂度:O(N^2)从下标为1开始每次拿出数组的一位数与前面的数进行比较,按照最坏的情况前面所有的数都比较一次,时间复杂度可以看成1+2+3+4+…+n-1;结果是O(N^2);如果元素集合接近有序则不需要和前面所有的数比较时间复杂度大大减少,最好时(有序)可以达到O(n).空间复杂度:O(1),它是一种稳定的排序算法稳定性:稳定插入排序也有两

文章图片
#数据结构
数据结构——lesson9排序之选择排序

以上就是选择排序包含的两种排序——直接选择排序和堆排序啦~ 堆排序在之前的博客中有详细讲过不过是建的小堆实现的降序,求最大前k个值,这里我们稍微改了点代码实现建的小堆实现升序;为什么升序要建大堆原因已经在文中详细解析过,大家有什么问题或者想法都可以打在评论区或者私信我🥳🥳完结撒花 ~🎉🎉🎉。

文章图片
#数据结构#算法
数据结构——lesson12排序之归并排序

我们学习了归并排序的两种实现——递归与非递归版;并分析了归并排序的时间和空间复杂度

文章图片
#数据结构#排序算法#算法 +1
【C++类和对象】初始化列表与隐式类型转换

初始化列表是C++类和对象中初始化成员变量的方式,在一些情况下可以提高效率和代码可读性。隐式类型转换在某些情况下可以方便地进行类型转换,但有时也会导致意外的结果或者不可预测的行为,所以C++提供了explicit来禁止隐式类型转换。

文章图片
#c++#c语言
【C++类和对象】const成员函数及流插入提取

在类和对象的成员函数中只读函数可以加const,因为其内部不涉及修改生成;取地址与const取地址这两个运算符一般不需要重载,使用编译器生成的默认取地址的重载即可,只有特殊情况,才需要重载;此外流插入运算符和流提取运算符通常都是以友元函数的形式定义在类的声明内部,这允许它们访问类的私有成员。

文章图片
#c++#chrome#开发语言 +1
【C++】模板初阶:泛型编程的起点

使用C++模板,可以定义函数模板和类模板。函数模板是一种通用的函数定义,可以用于处理多种类型的输入参数。例如,可以编写一个通用的排序函数模板,可以用于排序整数、浮点数、字符等类型的数据。类模板是一种通用的类定义,它可以用于创建具有相似结构和行为的多种类对象。例如,可以编写一个通用的容器类模板,可以用于存储不同类型的数据。C++中的模板是一种强大的机制,可以实现泛型编程,提高代码的可重用性和灵活性。

文章图片
#c++#开发语言#c语言
    共 37 条
  • 1
  • 2
  • 3
  • 4
  • 请选择