- 博客(20)
- 收藏
- 关注
原创 C++实现myString
字符串是以 '\0' 作为结尾 实现该定义字符串类的 += 运算符的重载 不能使用STL,不能使用 C 库的 strcpy 和 strcat 函数,其余的 C 库函数均可使用 例如: my_string s1 = "abc"; my_string s2 = "def"; s1 += s2; // 该操作完成之后,s1 变成 "abcdef" 由于s1 +=s2 等价于 s1 = s1+s2,我们首先实现strcpy 和...
2021-10-13 14:11:21 226
原创 Linux文件相关命令
Linux下一切皆文件一、7种文件类型1 普通文件 存放数据、程序等信息的文件,一般长期存放于外存储器(磁盘) 包括文本文件、数据文件、可执行的二进制文件等。2 目录文件 Linux把目录看作一种特殊的文件,构成系统的树形结构 目录文件只允许管理员进行修改,用户进程可以读取目录文件 每个目录文件至少包括2个条目 ..表示上级目录 .表示当前目录3 设备文件 Linux把每个设备...
2021-10-13 01:07:45 139
原创 C++静态库与动态库
一、GCC工作流程 预处理:把#头文件展开,进行宏替换,去掉注释(生成.i文件) 编译:把预处理后的文件生成汇编文件(.s文件),主要是检查语法、语义问题 汇编:把汇编文件生成目标文件(.o文件) 链接:将函数库中相应的代码组合到目标文件,生成可执行文件(默认a.out文件) .o文件不会立即执行,因为可能出现:一个.cpp文件中的函数引用了另一个.cpp文件中定义的符号/调用了某个库文件中的函数。链接的目...
2021-10-10 22:15:33 249
原创 二叉树的创建与遍历
1、递归创建 根据前序序列创建二叉树,当所有节点的左右孩子为NULL,则停止创建 #include<iostream>using namespace std;#include<vector>//树结点struct TreeNode{ int val; TreeNode* left; TreeNode* right; TreeNode(int x) :val(x), left(NULL), right(N...
2021-10-08 23:53:43 335
原创 开灯问题C++
有n盏灯,编号为1-n,初始状态关闭,每按一次状态改变 按一下序号为1的倍数的灯 按一下序号为2的倍数的灯 按一下序号为3的倍数的灯 ... 按一下序号为k的倍数的灯 问最后有多少灯开着? 测试:5,7 --- 2 10,5 --- 6#include<iostream>using namespace std;#include<vector>#include<algo...
2021-09-28 21:35:02 1166
原创 堆的插入操作
以小根堆为例1、交换法 --- 插入堆尾部,然后调整堆int heap[100];int len;void insert(int value){ len++; //0号位置不存储数据,len+1为插入位置 heap[len] = value; //插在堆尾部 int son,fa; son = len; fa = son/2; //0号位置不存储数据 while(son > 1) { if(heap[son] >= .
2021-09-20 23:27:55 2412 3
原创 进程之死锁
系列文章目录提示:这里可以添加系列文章的所有文章的目录,目录需要自己手动添加例如:第一章 Python 机器学习入门之pandas的使用提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档文章目录系列文章目录 一、死锁的定义 二、死锁产生的原因 三、产生死锁的4个必要条件 四、解决死锁的策略 1.鸵鸟策略 2.预防策略 3. 避免策略 4.检测和解除 总结一、死锁的定义 多个进程,每个进程都无限等待被另一进程所占有的资源,因...
2021-09-09 01:04:24 196
原创 归并排序算法
分治策略(1) 分解:将原问题分解成若干个规模较小,相互独立的小问题,这些小问题与原问题相同(2) 求解:求解小问题(很容易求解)(3) 合并:将小问题的解合并成原问题的解归并排序采用分治策略进行排序(以升序为例) #include<iostream>using namespace std;#include "IO.h" //处理输入输出#include<vector>//以升序为例 小 --> 大//...
2021-07-21 20:42:16 119 1
原创 快速排序算法
#include<iostream>#include<vector>#include<algorithm>#include "IO.h" //处理输入输出using namespace std;//以升序为例 low < 基准 < highvoid quickSort(vector<int> &nums,int i,int j) //引用传递,在原数组进行操作{ int temp; /...
2021-07-21 13:35:03 69
原创 链表的反转
#include<iostream>using namespace std;#include "listNode.h"#include "IO.h"#include<vector>class ListNode{public: int data; //数据域 ListNode* next; //指针域 ListNode(int val) { data = val; }};vector<int> inputV(){ int n...
2021-07-20 18:50:44 80
原创 单链表排序 --- 插入排序、归并排序
ListNode* insertSort(ListNode* L) //传入头指针{ ListNode* p = L->next->next; // 头指针L, L->next->data = a[0] L->next->next = NULL; ListNode* q; //q从头结点开始...
2021-07-17 02:48:40 141
原创 单链表的创建
1、顺序表(数组):C++中只要定义了一个数组,就分配一段连续存储空间。 元素的逻辑顺序域物理顺序一致,第i个元素在第i个位。 可顺序访问a[0],a[1],.....,也可随机访问a[i] int a[n] = {1,2,3}; //静态分配存储空间,预先分配4*n B // n难以确定,若用...
2021-07-16 18:56:12 160
原创 插入排序--直接插入、折半插入、希尔排序
vector<int> insertSort(vector<int>& nums){ int len = nums.size(); //假定第0个数有序,从第1个数开始插入 for (int j = 1; j < len; j++) { int temp = nums[j]; int i = j; //找插入点 while (temp > nums[i-1]) { nums[i] = nums[i-1...
2021-07-14 21:55:24 124
原创 选择排序--简单选择、堆排序
vector<int> selectSort(vector<int> &nums) { int len = nums.size(); cout << len; for (int i = 0; i < len - 1; i++) { //假定nums[i]为最大,遍历i以后的数,找实际最大 int max = i; for (int j = i + 1; j < len; j++) { if (nums...
2021-07-14 15:49:00 79
原创 冒泡排序算法
vector<int> bubbleSort(vector<int>& nums) { int len = nums.size(); for (int i = 0; i < len-1; i++) { if (nums[i] < nums[i+1]) { swap(nums[i], nums[i+1]); } } return nums;}
2021-07-14 15:02:16 67
原创 SPSS秩和检验
**一、背景知识** 设总体 和 为连续随机变量,其分布函数为和,从中分别抽取两个独立样本 和 ,欲检验如下假设: 原假设: 即假设两个总体分布相同。 ***定义1***:(秩) 设 是抽自总体的样本,是样本观测值,按由小到大的次序排列 。若 ,则 的秩就是, 记作 ,即的秩就是,所有观测值由小到大排列后,其观测值 的序号。 若出现几个观测值相等的情况,则定义它们的秩为各秩的平均值。 ...
2021-02-18 22:52:41 5188 1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人