知识点复习4

贪心算法

贪心算法(又称贪婪算法)是指,在对问题求解时,总是做出在当前看来是最好的选择。也就是说,不从整体最优上加以考虑,算法得到的是在某种意义上的局部最优解 。贪心算法不是对所有问题都能得到体最优解,关键是整贪心策略的选择

最短路径算法 

广度优先 贪心

思想就是先找到一个起点 然后从这起点找到临近的点 计算出到每一个临近节点权重 然后进行记录 从记录中 找出一个还没有被选过 并且距离最短的节点 他就成为当前的最优值 然后以这个几点 再进行重复操作 选出最小权重的 如果比原来的小就进行一个更新  

gpu

cpu是通用计算的处理器 比如说我要发布abcd四个命令 cpu就会按照顺序帮我一个个处理完

gpu则更偏向并行计算 他有多个物理核心 可以同时做多个简单的计算 gpu不适合做复杂的运算,适合做一些批量的简单运算 比如说驱动屏幕上几千万个像素点

无法上网的排查

运维工程师必备技能:网络排错思路讲解 - gujob - 博客园 (cnblogs.com)

抓包

主键外建 

关系型数据库中的一条记录中有若干个属性,若其中某一个属性组(注意是组)能唯一标识一条记录,该属性组就可以成为一个主键 
比如  
学生表(学号,姓名,性别,班级) 
其中每个学生的学号是唯一的,学号就是一个主键 

c++,python,java

线程崩溃了,进程也会崩溃吗?

同步异步

异步处理就是,你现在问我问题,我可以不回答你,等到我有时间了再处理你这个问题,同步就是要立即处理这个问题,直到信息处理完成后才返回  

原子操作

#include <atomic>
#include <iostream>

int main() {
    std::atomic_int counter(0); // 创建一个原子整型变量并初始化为0

    counter++; // 原子操作:递增counter的值

    int value = counter.load(); // 原子操作:读取counter的值
    std::cout << "Counter value: " << value << std::endl;

    counter.store(10); // 原子操作:将counter的值设置为10

    bool exchanged = counter.compare_exchange_weak(value, 5); // 原子操作:比较并交换counter的值
    if (exchanged) {
        std::cout << "Value exchanged successfully!" << std::endl;
    } else {
        std::cout << "Value exchange failed!" << std::endl;
    }

    return 0;
}

HTTP keep-alive和TCP keepalive的区别

map的operator[]和insert效率对比

当实现“向 map 容器中添加新键值对元素”的操作时,insert() 成员方法的执行效率更高;而在实现“更新 map 容器指定键值对的值”的操作时,operator[ ] 的效率更高。

unique_ptr如何实现独占对象

template<typename T>
class UniquePtr {
public:
    // 构造函数
    explicit UniquePtr(T* ptr = nullptr) : ptr_(ptr) {}
 
    // 禁止拷贝构造和拷贝赋值
    UniquePtr(const UniquePtr&) = delete;
    UniquePtr& operator=(const UniquePtr&) = delete;
 
    // 允许移动构造和移动赋值
    UniquePtr(UniquePtr&& other);
    UniquePtr& operator=(UniquePtr&& other);
 
    // 重置指针
    void reset(T* ptr = nullptr);
 
    // 获取原始指针
    T* get() const { return ptr_; }
 
    // 释放指针
    void release();
 
    // 解引用操作符
    T& operator*() const;
    T* operator->() const;
 
    // 检查指针是否为空
    explicit operator bool() const { return ptr_ != nullptr; }
 
    // 析构函数
    ~UniquePtr();
 
private:
    T* ptr_;
};

浮点数在内存中怎么存储

  • 整数部分,大家很容易想到的编程思路:不断除以2并对2取余得到的0或1即是对应位的二进制值,当整数部分为0时停止。
  • 小数部分,则正好与整数相反,不断乘以2,溢出部分会是0或1,这正是小数的二进制值,当小数部分为0时停止。

所以在比较的时候需要用一个很小的数值来进行比较。(二分法的思想)当二者之差小于这个很小的数时,就认为二者是相等的了。这个很小的数,称为精度。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值