JavaScript 数据结构2:列表 hashMap表 链表

桶排序 效率最低的排序方式  排序的数据不能有重复

桶排序是一个排序算法,工作的原理是将数组分到有限数量的桶子里。每个桶子再个别排序(有可能再使用别的排序算法或是以递归方式继续使用桶排序进行排序)。
 
let arr=[2,5,7,1,4,3,6,8,0];
let obj={};
arr.forEach(item=>obj[item]=item);
arr.length=0;
for(let prop in obj){
    arr.push(obj[prop]);
}
console.log(arr);//[0,1,2,3,4,5,6,7,8]

 

 
Set   列表
  1. Set是无序 
  2. Set元素不重复  和Object类似
  3. Set是有长度 size
  4. 不能按照键值对查找,也不能按照索引查找,只能遍历查找
  5. 插入、删除、添加的速度极快
  6. 去除重复
  7.  API特别简单

 

var set=new Set([1,2,3,1,2,4,5,6,3])
        console.log(set);
//打印结果:Set(6) {1, 2, 3, 4, 5, …}

 

Map  hashMap  表:

  1. 键值对存储 
  2. 添加、删除,插入速度快
  3. 通过键查找速度快
  4. size  长度
  5. 可以只遍历值,只(遍历)查找值操作简便
  6. 也可以只遍历键

 

let map=new Map();
        map.set("name","zhangsan");
        map.set("age",20);
        map.set("sex","man");

        for(let value of map.values()){
            console.log(value);
            //只遍历值(value)
        }
        for(let prop of map.keys()){
            console.log(prop);
            //只遍历键(key)
        }
        console.log(map);

      //打印结果:

        //Map(3) {"name" => "zhangsan", "age" => 20, "sex" => "man"}

 

 

 

 

链表:

  1. 插入、删除数据非常快捷
  2. 遍历查找相对较慢,和数组遍历复杂度相似
  3. 双向链表 前后关联查找

 

 

 

 

posted @ 2020-02-20 00:03  阿狸i  阅读(219)  评论(0)    收藏  举报