zoukankan      html  css  js  c++  java
  • Runtime Complexity of .NET Generic Collection

    Runtime Complexity of .NET Generic Collection

     

    I had to implement some data structures for my computational geometry class. Deciding whether to implement the data structures myself or using the build-in classes turned out to be a hard decision, as the runtime complexity information is located at the method itself, if present at all. So I went ahead to consolidate all the information in one table, then looked at the source code in Reflector and verified them. Below is my result.

      Internal Implement- 
    ation
    Add/insert Add beyond capacity Queue/Push Dequeue/
    Pop/Peek
    Remove/ 
    RemoveAt
    Item[i]/Find(i) GetEnumerator MoveNext
    List Array O(1) to add, O(n) to insert O(n) - - O(n) O(1) O(1) O(1)
    LinkedList Doubly linked list O(1), before/after given node O(1) O(1) O(1) O(1), before/after given node O(n) O(1) O(1)
    Stack Array O(1) O(n) O(1) O(1) - - O(1) O(1)
    Queue Array O(1) O(n) O(1) O(1) - - O(1) O(1)
    Dictionary Hashtable with links to another array index for collision O(1), O(n) if collision O(n) - - O(1), O(n) if collision O(1), O(n) if collision O(1) O(1)
    HashSet Hashtable with links to another array index for collision O(1), O(n) if collision O(n) - - O(1), O(n) if collision O(1), O(n) if collision O(1) O(1)
    SortedDictionary Red-black tree O(log n) O(log n) - - O(log n) O(log n) O(log n) O(1)
    SortedList Array O(n) O(n) - - O(n) O(1) O(1) O(1)
    SortedSet Red-black tree O(log n) O(log n) - - O(log n) O(log n) O(log n) O(1)

    Note:

    Dictionary Add, remove and item[i] has expected O(1) running time
    HashSet Add, remove and item[i] has expected O(1) running time

     
    http://c-sharp-snippets.blogspot.com/2010/03/runtime-complexity-of-net-generic.html
  • 相关阅读:
    树莓派4B-安装docker
    树莓派4B-挂载硬盘
    树莓派4B-修改软件源
    树莓派4B-初始化网络-静态ip
    树莓派4B-下载系统
    爬虫之路: 字体反扒升级版
    annotations导入报错
    [转]微信小程序全局分享转发控制实现——从此无需页面单独配置
    ollydbg 条件断点语法格式
    c++ CreateThread传递char*参数乱码解决办法
  • 原文地址:https://www.cnblogs.com/yonglianglee/p/4541444.html
Copyright © 2011-2022 走看看