摘要:
直接插入排序是不断的将一个元素插入到已排序的序列中. 时间复杂度: O(n)-->O(n^2) 空间复杂度:O(1) 是否稳定排序:稳定 阅读全文
摘要:
冒泡排序:对还未排序的序列,自前向后相邻元素依次比较和调整,让大的元素下沉,小的元素上浮. 时间复杂度: O(n)-->O(n^2) 空间复杂度:O(1) 是否稳定排序:稳定 阅读全文
摘要:
直接选择排序: 直接选择排序实质是一种交换排序.每次从待排序序列中选取关键字最小的元素,与当前元素交换,直到全部排序. 时间复杂度: O(n^2)-->O(n^2) 空间复杂度:O(1) 是否稳定排序:不稳定 阅读全文
摘要:
自定义结构类型,为支持插入到stl set或者排序,一种方式是重载operator<运算符成员函数.如果忘记将函数标识为const,则在编译时会报 6>c:\program files (x86)\microsoft visual studio 10.0\vc\include\xfunctional 阅读全文
摘要:
多线程一直是短板,整理相关知识方便查询 临界区(Critical Section) 临界区是一段供线程独占式访问的代码.在任意时刻,若有一个线程正在访问该代码段,如果其他所有试图访问的线程都将被挂起,直到访问的线程离开该代码段才可进入,保证线程安全. 适用于控制数据访问. 因其线程所有权其可以用于线 阅读全文
摘要:
Event可以实现不同进程中的线程同步. 相关函数: CreateEvent创建或打开一个事件对象 lpEventAttributes表示安全控制,一般直接用NULL. bManualReset为TRUE表示手动重置事件状态,每次需要调用ResetEvent置事件为未触发状态.若为FALSE则表示自 阅读全文
摘要:
Semaphore用于对资源进行计数.允许一定数量的线程同时访问该资源.可以用于进程间同步 相关函数 CreateSemaphore 创建或打开一个信号量对象 lpSemaphoreAttributes表示安全控制,一般直接用NULL. lInitialCount表示初始资源数量(必须>=0且<=l 阅读全文
摘要:
互斥量(Mutex) 互斥量是一个可以处于两态之一的变量:解锁和加锁.只有拥有互斥对象的线程才具有访问资源的权限.并且互斥量可以用于不同进程中的线程的互斥访问. 相关函数: CreateMutex用于创建互斥量 lpMutexAttributes表示安全控制,一般直接为NULL. bInitialO 阅读全文
摘要:
在C++中,我们使用new 和delete进行自己的内存管理.void test_func(){ someType *ptr = new someType; //使用ptr ptr->function(); delete ptr; ptr = nullptr;}View... 阅读全文
摘要:
线程与进程的关系及区别定义: 进程Process是具有一定独立功能的程序关于某个数据集合的一次运行活动, 是系统进行资源分配和调度的一个独立单位. 线程Thread是进程的一个执行实体, 是CPU调度和分派的基本单位, 是比进程更小的能独立运行的基本单位.线程自己基本上不拥有系统资源,只拥有一点运行 阅读全文