IT评测·应用市场-qidao123.com技术社区

标题: 初赛知识点 [打印本页]

作者: 曂沅仴駦    时间: 2024-12-12 20:27
标题: 初赛知识点
初赛知识点


目录

一:考些什么

二:芝士点复习(c++算法)

\(\texttt{stl:}\)
其中的函数:
对于map(映射):
对于stack(栈):
对于list(列表):
对于queue(队列):
对于set(集合):
对于deque(双端队列):
对于vector(动态数组):
时间复杂度:
需省略常数 !
面向对象
  1. class ClassName {
  2. private:
  3.     // 成员变量(属性)
  4.     // 成员函数(方法)
  5. public:
  6.     // 公共成员变量(属性)
  7.     // 公共成员函数(方法)
  8. };
复制代码
  1. 类定义了对象的结构,可以包含成员变量和成员函数。私有成员(private)只能在类的内部访问,公共成员(public)可以在类的外部访问。
复制代码
  1. class DerivedClass : public BaseClass {
  2. private:
  3.     // 派生类的成员变量(属性)
  4.     // 派生类的成员函数(方法)
  5. public:
  6.     // 派生类的公共成员变量(属性)
  7.     // 派生类的公共成员函数(方法)
  8. };
复制代码
派生类通过关键字 \(\texttt{public}\) 继承基类的公共成员。私有成员不会被派生类继承,但可以通过基类的公共成员函数访问。
  1. class BaseClass {
  2. public:
  3.     virtual void virtualFunction() {
  4.         // 基类方法的实现
  5.     }
  6. };
  7. class DerivedClass : public BaseClass {
  8. public:
  9.     void virtualFunction() override {
  10.         // 派生类方法的实现
  11.     }
  12. };
复制代码
在基类的方法声明中利用关键字 \(\texttt{virtual}\),并在派生类中利用关键字 \(\texttt{override}\) 重新定义方法。通过基类指针或引用调用虚函数时,会根据对象的现实类型来调用相应的方法。
  1. ClassName() {
  2.     // 构造函数的实现
  3. }
复制代码
构造函数可以有参数,用于在创建对象时传递初始化数据。
  1. ~ClassName() {
  2.     // 析构函数的实现
  3. }
复制代码
析构函数会在对象烧毁时自动调用,用于释放对象占用的资源。
排序:
各种排序的模板:
冒泡排序(Bubble Sort)\(\mathcal O (n^2)\):
  1. template<typename T>
  2. void bubbleSort(T arr[], int size) {
  3.     for (int i = 0; i < size - 1; ++i) {
  4.         for (int j = 0; j < size - i - 1; ++j) {
  5.             if (arr[j] > arr[j + 1]) {
  6.                 std::swap(arr[j], arr[j + 1]);
  7.             }
  8.         }
  9.     }
  10. }
复制代码
插入排序(Insertion Sort)\(\mathcal O (n^2)\):
  1. template<typename T>
  2. void insertionSort(T arr[], int size) {
  3.     for (int i = 1; i < size; ++i) {
  4.         T key = arr[i];
  5.         int j = i - 1;
  6.         while (j >= 0 && arr[j] > key) {
  7.             arr[j + 1] = arr[j];
  8.             --j;
  9.         }
  10.         arr[j + 1] = key;
  11.     }
  12. }
复制代码
选择排序(Selection Sort) \(\mathcal O (n^2)\):
  1. template<typename T>
  2. void selectionSort(T arr[], int size) {
  3.     for (int i = 0; i < size - 1; ++i) {
  4.         int minIndex = i;
  5.         for (int j = i + 1; j < size; ++j) {
  6.             if (arr[j] < arr[minIndex]) {
  7.                 minIndex = j;
  8.             }
  9.         }
  10.         std::swap(arr[i], arr[minIndex]);
  11.     }
  12. }
复制代码
快速排序(Quick Sort)\(\mathcal O (n \log n)\):
  1. template<typename T>
  2. int partition(T arr[], int low, int high) {
  3.     T pivot = arr[high];
  4.     int i = low - 1;
  5.     for (int j = low; j <= high - 1; ++j) {
  6.         if (arr[j] < pivot) {
  7.             ++i;
  8.             std::swap(arr[i], arr[j]);
  9.         }
  10.     }
  11.     std::swap(arr[i + 1], arr[high]);
  12.     return i + 1;
  13. }
  14. template<typename T>
  15. void quickSort(T arr[], int low, int high) {
  16.     if (low < high) {
  17.         int pi = partition(arr, low, high);
  18.         quickSort(arr, low, pi - 1);
  19.         quickSort(arr, pi + 1, high);
  20.     }
  21. }
复制代码
动态规划:
移位:
移位操纵在计算机编程中具有广泛的应用。它可以用于对数据举行快速的乘法和除法运算,以及对二进制位的处理和控制。在某些环境下,移位操纵还可以用于优化算法和数据布局的实现。
补充:
移位可能会丢失精度。偶然vector在 c++ 中会将int>>识别成右移,以是最好加一个 可爱的 空格。
三:计算机

计算机是一种电子装备,用于处理和存储数据,执行各种计算和操纵。它由硬件和软件两部分组成。
计算机通过执行一系列指令来完成各种使命。指令是以二进制情势表示的机器代码,由计算机的CPU执行。CPU根据指令集架构(如x86、ARM等)来理解和执行指令。
计算机工作的基本原理是将数据加载到内存中,然后通过CPU对数据举行处理和计算。计算机通过输入装备接收用户的指令和数据,通过输出装备向用户显示效果。
计算机的发展经历了几个重要阶段,从大型机到微型机,再到今世的个人电脑、笔记本电脑、智能手机和其他嵌入式系统。计算机的性能不断提高,体积不断缩小,功能不断扩展,已经成为今世社会不可或缺的工具。
第一台计算机:\(1946\)年 \(\texttt{ENIAC}\)
计算机之父:冯·诺依曼 匈牙利
人工智能之父:图灵 英国
冯·诺依曼理论计算机:输入装备,运算器,存储器,控制器,输出装备
第一个程序员: Ada Lovelace
四:操纵系统

Operating System
五:网络 & 数据库

六:软件工程


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。




欢迎光临 IT评测·应用市场-qidao123.com技术社区 (https://dis.qidao123.com/) Powered by Discuz! X3.4