P34 https://www.bilibili.com/video/av75509584?p=34
基本概念 抽象数据类型(ADT) vs 数据结构汽车使用手册,在某种意义上,就是一种ADT,用户只需要关系如何使用它,不必关系内部的实现,内部的实现由生产者决定。
算法中,将向量的元素对应的索引,称之为“秩”。
disordered(): 返回逆序对的个数;若返回0,说明逆序对为0,该序列为有序序列。
search(X): 返回不超过X的最大的元素的秩(索引)。若X小于vector中最小的值,则返回-1。
向量源自,并且是脱胎于数组。
统一的采用模板式的方法,可以使数据结构的定义非常的规范,更重要的是,此后,他们可以互相的融合、组合,便捷的搭建更为复杂的数据结构。
因为固定大小扩容的时间成本较大,平均分摊到每次,需要的时间复杂度为O(n);
而倍增式的扩容,平均每次需要的时间复杂度为O(1)。详细分析如下。
总结: 倍增策略,是在空间上做出了一些牺牲(使用率仍大于50%),来换取时间复杂度上的巨大收益。
平均复杂度 vs 分摊复杂度整体考虑连续操作。
比对:能够比较元素之间是否相等。
元素 [ ] 访问采用 [ ] 的方式访问向量元素时,至关重要的方式是 “秩” 的概念;这种方式也称之为 “循秩访问”。
插入注意点:移动需要移动的元素时,是从后往前依次的移动顺序。
区间删除注意点:移动需要移动的元素时,是从前往后依次的移动顺序。原因:避免因为移动区间有重叠部分,导致无意间元素被覆盖。
通过函数对象的方式,对向量元素进行遍历的方法,通用性更强。
重载一个结构体的 “ ( ) ” 操作符,使之看上去或者说使用上去,类似于一个函数。
比较:元素之间谁大谁小。
找出向量中的逆序对复制元素:直接复制到位,而不是每发现一个重复的,删除一个。
建议小技巧:以下算法,在比较时,用的都是 “
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?