- 博客(5)
- 收藏
- 关注
转载 十大常用算法
前言最近在研究一些经常用到的东西想把它们做一个汇总,想了想用到最多的应该是排序算法,所以对排序算法做了个总结,并自己用C++实现了一下。一、算法概述0.1 算法分类十种常见排序算法可以分为两大类:非线性时间比较类排序:通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn),因此称为非线性时间比较类排序。线性时间非比较类排序:不通过比较来决定元素间的相对次序,它可以突破基于比较排序的时间下界,以线性时间运行,因此称为线性时间非比较类排序。0.2 算法复杂.
2020-12-23 16:49:06 2724
转载 C++11新特性
1.nullptr:初始化空指针,nullptr出现的目的是为了替代NULL。传统 C++ 会把 NULL、0 视为同一种东西,这取决于编译器如何定义 NULL,有些编译器会将 NULL 定义为 ((void*)0),有些则会直接将其定义为 0。C++ 不允许直接将 void * 隐式转换到其他类型,但如果 NULL 被定义为 ((void*)0),那么当编译char *ch = NULL;时,NULL 只好被定义为 0。为了解决这个问题,C++11 引入了 nullptr 关键字,专门用来区分空指
2020-12-22 16:49:21 318
转载 C++14新特性
在C++的时间表中,C++14按计划是一个小版本,完成制定C++11标准的剩余工作,目的是使C++成为一门更清晰、更简单和更快速的语言。新的语言特性留到了未来的C++17标准中。C++14的主要特性可以分为三个领域:Lambda函数、constexpr和类型推导。Lambda函数C++14的泛型Lambda使编写如下语句成为可能:auto lambda = [](auto x, auto y) {return x + y;};而另一方面,C++11要求Lambda参数使用具体.
2020-12-22 15:11:57 325 1
原创 链表
1. 静态链表和动态链表区别详解1.1 静态链表使用静态链表存储数据,需要预先申请足够大的一整块内存空间,也就是说,静态链表存储数据元素的个数从其创建的那一刻就已经确定,后期无法更改。使用静态链表存储数据,你需要通过操控两条链表,一条是存储数据,另一条是记录空闲空间的位置。1.2 动态链表使用动态链表存储数据,不需要预先申请内存空间,而是在需要的时候才向内存申请。也就是说,动态链表存储数据元素的个数是不限的,想存多少就存多少。同时,使用动态链表的整个过程,你也只需操控一条存储数据的链
2020-12-22 15:08:05 188
转载 数据结构
1.数据存储结构常用的存储结构有顺序存储、链式存储、索引存储和哈希存储等。1.1 顺序表存储 原理:顺序表存储是将数据元素放到一块连续的内存存储空间,存取效率高,速度快。但是不可以动态增加长度。 优点:存取速度高效,通过下标来直接存储。 缺点:1.插入和删除比较慢,2.不可以增长长度。 比如:插入或者删除一个元素时,整个表需要遍历移动元素来重新排一次顺序。1.2 链表存储 原理:链表存储是在程序运行过程中动态的分...
2020-12-22 14:56:01 123
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人