码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2017-01-15 00:25:00      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:body   数组   ons   左移   console   代码实现   算法实现   ++   meta   

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

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

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

  关于数据,我们常会用到排序、查找(检索)等操作。常用的排序有冒泡排序、选择排序、插入排序、希尔排序、归并排序和快速排序。常用的查找方式有:顺序查找和二分查找。其中顺序查找中,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代码实现

标签:body   数组   ons   左移   console   代码实现   算法实现   ++   meta   

原文地址:http://www.cnblogs.com/hxuena/p/6286365.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!