- 博客(16)
- 收藏
- 关注
转载 课时3 线程启动、结束,创建线程多法,join、detach
用类作为可调用对象创建线程class A{public: A() { cout << "构造函数" << endl; } A(const A& a) { cout << "拷贝构造函数" << endl; } void operator()() { cout << "此时在子线程中" &l...
2019-09-01 00:24:00 90
转载 课时4 线程传参详解,detach()大坑,成员函数做线程函数
线程传参void myprint(int a){ cout << "此时在子线程中" << endl; cout << "a = " << a << endl;}int main(int argc, char** argv){ int a = 1; thread myjob(myp...
2019-08-31 22:03:00 129
转载 散列
基本概念散列是一种用于以常数平均时间执行插入、删除和查找的技术理想的散列表数据结构是一个包含有关键字的具有固定大小的数组,表的大小记作TableSize,习惯上使表从0到TableSize - 1变化,每个关键字被映射到0到TableSize - 1范围中的某个数并被放在合适的单元中,这个映射就叫散列函数当两个关键字散列到同一个值的时候就会产生冲突,因为单元数目有限而关键字无穷多...
2019-08-19 20:05:00 138
转载 优先队列
概念和性质优先队列是允许至少下列两种操作的数据结构:插入(Insert)和删除最小者(DeleteMin)实现优先队列的数据结构叫二叉堆,他有两个性质,结构性(完全二叉树)和堆序性((min)堆或(max)堆),堆的操作必须要到堆的所有性质都被满足才能终止堆是一颗被完全填满的二叉树,在树的底层上的元素从左到右填入的,这样的树叫完全二叉树。可以证明一颗高为\(h\)的完全二叉树有\...
2019-08-16 20:26:00 96
转载 快速排序
快速排序最坏情形时间复杂度\(\mathrm{O}(N^2)\)平均运行时间\(\mathrm{O}(NlogN)\)//快速排序驱动程序void QuickSort(int *a; int N){ Qsort(a, 0, N - 1);}//实现三数中值分割法的程序int Median3(int *a, int Left, int Right){ ...
2019-08-14 23:00:00 85
转载 堆排序
堆排序时间复杂度\(\mathrm{O}(NlogN)\)#define LeftChild(i) (2 * (i) + 1)void PerDown(int *a, int i, int N){ int Child; int tmp; for (tmp = a[i]; LeftChild(i) < N; i = Child) { ...
2019-08-14 22:07:00 65
转载 希尔排序
希尔排序初始81941196123517952858417515在5-排序后35171128124175159658819495在3-排序后28121135154158179475819695在1-排序后11121517283541587581949596...
2019-08-13 22:21:00 87
转载 派生类的拷贝控制成员
测试代码#include "../head.h"class Quote {public: Quote() {cout << "default constructing Quote" << endl;}; Quote(const string &book, double sales_price) : bookNo(b...
2019-04-22 14:36:00 135
转载 逆波兰表达式
是什么对于一个中缀表达式,在将其转化为逆波兰表达式后,计算就会显得很简便,从左至右,在遇到数字的时候就将其入栈,在遇到运算符的时候就将栈中的数字弹出进行运算,然后将运算结果再入栈,循环此过程直到末尾转换逆波兰表达式是根据中缀表达式转换得到的,具体转换如图1 先用括号显示的表示所有运算符的优先级2 把运算符放到对应的右括号后面3 然后将所有的括号全部删除转载于...
2019-04-20 18:00:00 88
转载 实现引用计数
实现代码#include "../head.h"#include <memory>#include <initializer_list>class strBlob {public: typedef vector<string>::size_type size_type; strBlob(); strBlob(init...
2019-04-12 15:52:00 101
转载 栈混洗
栈混洗的概念A中的元素经S的中转后压入B中,其间,只允许从A弹出压入S或者从S弹出压入B,A中元素全部转移到B中即完成一次栈混洗操作栈混洗的甄别对于这个问题主要就是模拟一次栈混洗来解决,即每次S.pop()之前检测S是否已空,或需要弹出的元素在S中却不是顶元素代码实现#include "../head.h"#include <stack>bool ...
2019-04-11 14:40:00 337
转载 进制转换
栈的一个典型应用就是进制转换#include "../head.h"#include <stack>void convert(stack<char, vector<char>> &s, int n, int base) { const static char digit[] = {'0','1', '2', '3', '4', ...
2019-04-10 22:13:00 89
转载 插入排序
插入排序时间复杂度\(\mathrm{O}(n^2)\)算法的思路如图所示将待排序部分分成两个片段,有序片段和待排序片段,每次从待排序片段取一个数,与有序片段进行比较后放入合适位置代码实现void insertSort(int *a, size_t size) { int i, j; for (i = 2; i < size; ++i) { ...
2019-04-09 15:00:00 59
转载 冒泡排序
冒泡排序时间复杂度\(\mathrm{O}(n^2)\)冒泡算法思路如图所示两两比较相邻的两个元素,如果逆序就交换//这里使用的方法是从开头将大的元素一个个往后放,//有些也可能是从后面开始将小的元素一个个往前顶void bubbleSort(int *a, size_t size) { for (int i = size - 1; i > 0; --i)...
2019-04-08 14:56:00 64
转载 选择排序
选择排序时间复杂度\(\mathrm{O}(n^2)\)每次都对无序片段进行整趟扫描,取得最大或最小的那个元素,放到有序片段的前方或后方算法思路如图所示与冒泡排序相比就是少了很多交换元素的操作,选择排序每次只进行一次元素交换代码void selectSort(int *a, size_t size) { int min; for (int i = 0; ...
2019-04-08 14:14:00 63
转载 ubuntu中使用shell发送邮件的方法
首先需要安装mutt和msmtpsudo apt-get install muttsudo apt-get install msmtp编辑mutt配置文件系统全局设置/etc/Muttrc,如果使用某个系统用户,可以在~/.muttrc中设置。vim .muttrcset sendmail="/usr/bin/msmtp"set use_from=yesset realn...
2018-10-23 21:17:00 438
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人