作为前端开发人员,无论在工作还是找工作(笔试/面试),或多或少会涉及一些数据结构的知识。
数据结构即计算机存储和组织数据的方式。
常用的结构:数组、栈、队列、链表、树、图、堆和散列表
关于数据,我们常会用到排序、查找(检索)等操作。常用的排序有冒泡排序、选择排序、插入排序、希尔排序、归并排序和快速排序。常用的查找方式有:顺序查找和二分查找。其中顺序查找中,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位上。
时间: 2024-11-03 21:44:06