数据查找之80-20原则的JavaScript代码实现

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了数据查找之80-20原则的JavaScript代码实现相关的知识,希望对你有一定的参考价值。

  作为前端开发人员,无论在工作还是找工作(笔试/面试),或多或少会涉及一些数据结构的知识。

  数据结构即计算机存储和组织数据的方式。

  常用的结构:数组、栈、队列、链表、树、图、堆和散列表

  关于数据,我们常会用到排序、查找(检索)等操作。常用的排序有冒泡排序、选择排序、插入排序、希尔排序、归并排序和快速排序。常用的查找方式有:顺序查找和二分查找。其中顺序查找中,80/20规则由利于数据的组织与管理,提高数据查找效率。

      80/20原则的前提是待查找数据的存储位置在数组的后80%里,其驱动力是数据的查找次数。即当一个数位于数组的后80%部分时,每对其查找一次,该数据就会向前位移一位。80/20原则的javascript实现代码如下:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>顺序查找之80-20原则的算法实现</title>
</head>
<body>
    <script type="text/javascript">
    //交换函数
        function swap(arr,a1,a2){
            var temp = arr[a1];
            arr[a1] = arr[a2];
            arr[a2] = temp;
        }
    //主要代码逻辑
        function SquSerch(arr,data){
            var n = arr.length;
            for (var i=0;i<n;i++){
                if(arr[i]==data&&i>(n*0.2)){
                    swap(arr,i,(i-1));
                }
            }
            return -1;
        }
    //实例演示:
        var Num=[23,4,7,8,5,2,9];
        SquSerch(Num,5);
        SquSerch(Num,5);
        SquSerch(Num,5);
        SquSerch(Num,5);
        console.log(Num);
    </script>
</body>
</html>

运行结果:

技术分享

可知,随着数据“5”查找次数的增多,其位置在逐渐往左移:由原来的第5位移到了第2位上。

 

以上是关于数据查找之80-20原则的JavaScript代码实现的主要内容,如果未能解决你的问题,请参考以下文章

数据结构(java)之查找

原来这样写的Javascript才整洁

javascript中对象属性搜索原则

C++程序性能优化指南

深入理解JavaScript系列:S.O.L.I.D五大原则之里氏替换原则LSP

深入理解JavaScript系列(22):S.O.L.I.D五大原则之依赖倒置原则DIP