数据查找之80-20原则的JavaScript代码实现
2024-08-24 14:47:49
作为前端开发人员,无论在工作还是找工作(笔试/面试),或多或少会涉及一些数据结构的知识。
数据结构即计算机存储和组织数据的方式。
常用的结构:数组、栈、队列、链表、树、图、堆和散列表
关于数据,我们常会用到排序、查找(检索)等操作。常用的排序有冒泡排序、选择排序、插入排序、希尔排序、归并排序和快速排序。常用的查找方式有:顺序查找和二分查找。其中顺序查找中,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位上。
最新文章
- Yii 2.x Behavior - 类图
- go:channel(未完)
- Delphi结构体数组指针的问题
- svn和ftp的区别
- chrome主页被篡改为360该溶液的导航
- MD5加密算法(信息摘要算法)、Base64算法
- 走进Vue时代进阶篇(01):重构电商购物车模块
- BZOJ 2342: [Shoi2011]双倍回文 [Manacher + set]
- const char *p;和char * const p的区别
- .Net Core 实践 - 使用log4net记录日志(3)— log4net向ElasticSearch写日志
- 斜率优化dp 的简单入门
- 如何解决 kubernetes 重启后,启来不来的问题
- 解决Eclipse点击运行后控制台不能自动弹出的问题
- MySQL去重案列(待更新...)
- Cocos Creator 计时器的延时循环试用方法
- [转]fatal error LNK1112: 模块计算机类型“X86”与目标计算机类型“x64”冲突
- nodejs爬虫设置动态userAgent
- eval详解
- [学习笔记]我们追过的神奇异或(Trie树系列)
- PAT 1062 最简分数