JavaScript

超轻量级php框架startmvc

JavaScript数据结构与算法之检索算法实例分析【顺序查找、最大最小值、自组织查询】

更新时间:2020-08-15 23:24:01 作者:startmvc
本文实例讲述了JavaScript数据结构与算法之检索算法。分享给大家供大家参考,具体如下:ja

本文实例讲述了JavaScript数据结构与算法之检索算法。分享给大家供大家参考,具体如下:

javascript数据结构与算法---检索算法(顺序查找、最大最小值、自组织查询)

一、顺序查找法


/*
* 顺序查找法
*
* 顺序查找法只要从列表的第一个元素开始循环,然后逐个与要查找的数据进行比较。
* 如果匹配到了,则结束查找。
* 如果到了列表的结尾也没有匹配到,那么这个数据就不存在于这个列表中。
* */
function seqSearch(arr, data) {
 for (var i = 0; i < arr.length; ++i) {
 if (arr[i] == data) {
 return i;
 }
 }
 return -1;
}
function dispArr(arr) {
 var str = "";
 for (var i = 0; i < arr.length; ++i) {
 str += arr[i] + " ";
 if ((i > 0)&&(i % 10 == 0)) {
 str += "\n";
 }
 }
 console.log(str);
}
var nums = [];
for (var i = 0; i < 100; ++i) {
 nums[i] = Math.floor(Math.random() * 101);
}
dispArr(nums);
console.log("Enter a number to search for: ");
var num = parseInt(23);
console.log();
var index = seqSearch(nums, num);
if (index > -1) {
 console.log(num + " 存在数组中."+"在数组中的索引位置为" + index);
}else {
 console.log(num + " 不存在数组中");
}

运行结果:

二、最大最小值、自组织查询


/*查找最小值
* (1)将数组第一个元素赋值给一个变量,把这个变量作为最小值。
* (2)开始遍历数组,从第二个元素开始依次同当前最小值进行比较。
* (3)如果当前元素数值小于当前最小值,则将当前元素设为新的最小值。
* (4)移动到下一个元素,并且重复步骤3。
* (5)当程序结束时,这个变量中存储的就是最小值。
* */
function findMin(arr) {
 var min = arr[0];
 for (var i = 1; i < arr.length; ++i) {
 if (arr[i] < min) {
 min = arr[i];
 }
 }
 return min;
}
/*查找最大值*/
function findMax(arr) {
 var max = arr[0];
 for (var i = 1; i < arr.length; ++i) {
 if (arr[i] > max) {
 max = arr[i];
 }
 }
 return max;
}
/*自组织查询
* 通过将频繁查找到的元素置于数据集的起始位置来最小化查找次数。
* 比如,如果你是一个图书馆管理员,并且你在一天内会被问到好几次同一本参考书,那么你将会把这本书放在触手可及的地方。
* 经过多次查找之后,查找最频繁的元素会从原来的位置移动到数据集的起始位置。
* */
function seqSearch(arr, data) {
 for (var i = 0; i < arr.length; ++i) {
 if (arr[i] == data && i > (arr.length * 0.2)) {
 swap(arr,i,0);
 return true;
 }
 else if (arr[i] == data) {
 return true;
 }
 }
 return false;
}
function dispArr(arr) {
 var str = "";
 for (var i = 0; i < arr.length; ++i) {
 str += arr[i] + " ";
 if ((i > 0)&&(i % 10 == 0)) {
 str += "\n";
 }
 }
 console.log(str);
}
var nums = [];
for (var i = 0; i < 100; ++i) {
 nums[i] = Math.floor(Math.random() * 101);
}
var minValue = findMin(nums);
dispArr(nums);
console.log("The minimum value is: " + minValue);
var maxValue = findMax(nums);
console.log("The maximum value is: " + maxValue);

运行结果:

感兴趣的朋友可以使用在线HTML/CSS/JavaScript代码运行工具:http://tools.jb51.net/code/HtmlJsRun测试上述代码运行效果。

JavaScript 数据结构与算法 检索算法 顺序查找 最大最小值 自组织查询
相关文章

JS中数据结构与算法---排序算法(Sort Algorithm)实例详解

每周一练 之 数据结构与算法(Stack)

JavaScript数据结构与算法之二叉树插入节点、生成二叉树示例

JavaScript数据结构与算法之基本排序算法定义与效率比较【冒泡、选择、插入排序】

JavaScript数据结构与算法之二叉树遍历算法详解【先序、中序、后序】

JavaScript数据结构与算法之检索算法实例分析【顺序查找、最大最小值、自组织查询】

JavaScript数据结构与算法之检索算法示例【二分查找法、计算重复次数】

Python cookbook(数据结构与算法)将多个映射合并为单个映射的方法

Python cookbook(数据结构与算法)从字典中提取子集的方法示例

Python cookbook(数据结构与算法)将名称映射到序列元素中的方法

Python cookbook(数据结构与算法)同时对数据做转换和换算处理操作示例

Python cookbook(数据结构与算法)找出序列中出现次数最多的元素算法示例

Python cookbook(数据结构与算法)通过公共键对字典列表排序算法示例

Python cookbook(数据结构与算法)实现对不原生支持比较操作的对象排序算法示例

Python cookbook(数据结构与算法)根据字段将记录分组操作示例

Python cookbook(数据结构与算法)筛选及提取序列中元素的方法

Python cookbook(数据结构与算法)将序列分解为单独变量的方法

Python cookbook(数据结构与算法)从任意长度的可迭代对象中分解元素操作示例

Python cookbook(数据结构与算法)保存最后N个元素的方法

Python cookbook(数据结构与算法)找到最大或最小的N个元素实现方法示例