zoukankan      html  css  js  c++  java
  • C#数据结构选择

    选择一个合适的数据结构会对程序的性能有着显著的提高

    线性表和链表:

      1、LinkedList<T>:适合于元素数组不固定,存在大量列表的头尾添加动作场合。其它可使用List<T>。

      2、Arra:元素数量固定,需要用到检索(即索引器)。

      3、List<T>:元素数量不固定,需要用到索引器。

    栈和队列(只有在模拟栈和队列时才考虑):

      1、Stack (Stack<T>):当需要实现 LIFO(Last In First Out)时。

      2、Queue (Queue<T>):当需要实现 FIFO(First In First Out)时。

     哈希(需要大规模查找):

      1、Hash table (Dictionary<K,T>):当需要使用键值对(Key-Value)来快速添加和查找,并且元素没有特定的顺序时。有了泛型版本的字典,我们几乎永远不需要使用非泛型的HashTable

      2、Tree-based dictionary (SortedDictionary<K,T>):当需要使用键值对(Key-Value)来快速添加和查找,并且元素总是需要根据 Key 来排序时。

     集合(保存一组唯一的值/模拟集合运算):

      1、Hash table based set (HashSet<T>):当需要保存一组唯一的值,并且元素没有特定顺序时。

      2、Tree based set (SortedSet<T>):当需要保存一组唯一的值,并且元素总是需要排序时。


    树:

    参考风口上的猪.Net面试系列文章http://www.cnblogs.com/haoyifei/p/5790168.html

  • 相关阅读:
    node md5
    Iptables入门教程
    centos 6.5 yum安装lnmp
    SSH日志位置
    【收藏】实战Nginx与PHP(FastCGI)的安装、配置与优化
    读《微博春晚背后的技术故事》笔记
    下载整个网页的方法,包括样式、图片、和js
    【收藏】下载Chrome商店插件的方法,万恶的gwd
    nginx变量
    【收藏】SSH原理与运用
  • 原文地址:https://www.cnblogs.com/liuxiaopi/p/6000287.html
Copyright © 2011-2022 走看看