
数据结构和算法
陆标
研究生在读
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
常用排序算法
1.快速排序(使用最常见的排序算法)插入排序是一个分治思想。Divide:数组A[p…r]分为两个子数组A[p…q-1],A[q+1…r],使得A[p…q-1]上所有元素小于A[q];A[q+1…r]上所有的元素都大于A[q]。Conquer:通过对快排的递归,对两个子数组A[p…q-1]和A[q+1…r]进行排序。Combine:分完就已经有序。实现//=========快排算法==...原创 2019-05-06 11:45:14 · 177 阅读 · 0 评论 -
C++11常用功能
智能指针使用new和malloc申请的内存空间,没有被释放会造成内存泄漏,为了一劳永逸,提出了智能指针,自动回收内存。智能指针将一个计数器与对象相关联,引用计数器跟踪该类有多少个对象共享同一个指针,计数器初始化为1,当减少至0的时候就删除指针。常用指针简介auto_ptr:不支持复制(拷贝构造)和赋值(=),但是赋值时却不会报错,有很多问题。unique_ptr:在赋值和复制时会报...原创 2019-08-21 18:49:11 · 151 阅读 · 0 评论 -
C++内存分配
内存的分配方式静态分配:程序在编译与链接的时候分配的固定存储空间的方式。效率相对较高。动态分配:在程序的运行期间根据需要动态的分布存储空间,C语言中使用malloc、calloc、free进行分配和释放。C++使用new和delete来分配和释放。malloc申请的内存位于堆当中,后面还需要使用memset初始化这部分内存空间。alloca是向栈申请内存,无需释放。free释放上述申请...原创 2019-08-21 14:20:53 · 238 阅读 · 0 评论 -
常用设计模式与六原则详解
设计模式六大原则参考链接1.单一职责最简单的面向对象设计原则,用于控制类的颗粒大小。一个类只负责一个功能领域中的相应职责,或者可以定义为:就一个类而言,应该只有一个引起它变化的原因。单一职责原则是实现高内聚、低耦合的指导方针,它是最简单但又最难运用的原则。2.开闭原则面向对象的可复用设计的基石,是最重要的面向对象的设计原则,也是面向对象的目标。一个软件实体应该对拓展开放,对修...原创 2019-08-20 17:53:26 · 196 阅读 · 0 评论 -
位运算实现加减乘除
位运算符简介^: 按位异或;&:按位与; | :按位或原创 2019-08-20 10:53:45 · 210 阅读 · 0 评论 -
二叉树的详解与实现
简介二叉树的相关概念,如,树高度,节点层数,节点度数,路径,叶节点,分支节点,根节点,父节点,左节点,右节点,兄弟节点,祖先节点,子孙节点,左子树,右子树等基本概念,不再赘述。二叉树分类1、完全二叉树若设二叉树的高度为h,除第 h 层外,其它各层 (1~h-1) 的结点数都达到最大个数,第h层有叶子结点,并且叶子结点都是从左到右依次排布,这就是完全二叉树。一维数组可以作为完全二叉树...原创 2019-08-18 22:40:30 · 162846 阅读 · 17 评论 -
DFS(华为数独题解)
实际数独可能会解出多组,所以只能通过50%案例。//华为数独题目#include <iostream>#include <vector>#include <algorithm>#include <unordered_map>using namespace std;vector<vector<int>> ch...原创 2019-08-05 18:45:48 · 566 阅读 · 0 评论 -
不同编译器下的各个数据类型的字节长度
各个数据类型比较16位编译器char :1个字节char*(即指针变量): 2个字节short int : 2个字节int: 2个字节unsigned int : 2个字节float: 4个字节double: 8个字节long: 4个字节long long: 8个字节unsigned long: 4个字节32位编译器char :1个字节char*...原创 2019-07-19 11:42:16 · 933 阅读 · 0 评论 -
shared_ptr实现stock
Tips需要注意#include< memoy >头文件。shared_ptr和普通的指针用起来基本没啥区别,初始化有三种方式:1. shared_ptr< Obj > ptr(new Obj);2. shared_ptr< Obj > ptr = make_share< Obj >();3. 拷贝实现template <t...原创 2019-05-06 21:42:04 · 169 阅读 · 0 评论