zoukankan      html  css  js  c++  java
  • Acwing Arithmetic Learning:数据结构(3)

    数据结构(3) acwing

    1.hash表

    哈希函数概念:image-20210627085650592

    (1)x mod 10 ^5 即缩小了值域 {模的数最好取成“质数”:这样冲突的概率最小}

    (2)解决冲突

    • 求大于i的第一个质因子

    image-20210627092139236

    1. 存储结构

      • 开放寻址法

        (数组开辟长度为2~3倍){涉及到操作:添加、查询、删除(只是做一个标记,并不真正删除)}

        • image-20210627125504684

          image-20210627125543948

          0x3f3f3f3f是一个大于10^9的数,在memset()函数中,其按照字节进行存储,因为h为int型数组,占用4个字节,因此写一个0x3f就够了(一个字节是0x3f)

      • 拉链法

        • image-20210627090816211
        • image-20210627123514006
    2. 字符串哈希

    • 所有的关于字符串匹配问题,不一定利用KMP做,也可以使用字符串哈希方式
    • 使用场景:比较两个字符串是否相等
    • KMP算法和字符串哈希比较: KMP的特点是可以处理“循环结”

    核心是:将一个字符串用k进制的形式,看做是一个数字

    3.STL

    image-20210629153445808

    1.vector

    • size(),元素的个数

    • empty() 返回是否为空

    • clear() 清空

    • front() /back() 第一个元素 /最后一个元素

    • push_back() / pop_back() 向后面插入一个数 / 删除数组最后一个数

    • begin() / end() 第0个数 / 最后一个数的后面一个数

      image-20210629155434805

      image-20210629184040492

    倍增:系统为某程序分配空间时,所需时间与空间大小无关,只与请求次数有关

    2.string

    • size(),元素的个数
    • empty() 返回是否为空
    • clear() 清空
    • substr():截取字符串
    • c_str()​ :字符串第一个下标

    初始下标为0

    image-20210629170136741

    3.queue

    • empty()

    • size()

    • push(): 向队尾插入一个元素

    • front(): 返回队头元素

    • back(): 返回队尾元素

    • pop(): 弹出队头元素

    4.priority_queue(就是堆)

    默认是大根堆,转成小根堆的方式

    • push() :插入一个元素
    • top(): 返回堆顶元素
    • pop(): 弹出堆顶元素

    5.stack

    • empty()

    • size()

    • push()

    • top()

    • pop()

    6.deque(双端队列)--basically not use

    相当于加强版 vector

    image-20210629172303163

    7.set、multiset、map、multimap

    size()、empty()、clear()、begin()/end() ++,-- 返回前驱和后继,时间复杂度O(logn)

    • set/multiset

    image-20210629174417136

    • map/multimap

    image-20210629180017442

    • unordered_set,unordered_map,unordered_multiset,unordered_multimap

      ​ 和上面类似,但增删改查的时间复杂度为O(1)

      ​ 不支持 lower_bound() / upper_bound()、迭代器的++、--

    • bitset 压位

    image-20210629183927944

  • 相关阅读:
    qemu-kvm磁盘读写的缓冲(cache)的五种模式
    关于追踪qemu 源码函数路径的一个方法
    准备升大三啦
    关于Vim的一个配置文件
    POJ 3253
    hihocoder 第二十五周 spfa 最短路
    POJ 2718 穷举
    《鸟哥Linux私房菜基础学习篇》命令索引
    博文流
    《SDN核心技术剖析和实战指南》3.3读书笔记
  • 原文地址:https://www.cnblogs.com/happy-prince/p/14951862.html
Copyright © 2011-2022 走看看