数组的应用
来源:互联网 发布:高德导航软件 编辑:程序博客网 时间:2024/06/18 15:07
数组的应用
(1)查找
其实在数组的属性与方法中,我们学习了一个indexOf方法就是查找,它是系统提供的方法,我们其实也可以实现自己的查找方法。
a、顺序查找
<script> var a = [3,1,34,45,35,67,84,36,24]; var num = Number(prompt("请输入要查找的值:")); var index = -1;//最初认为要找的数不在数组中 for(var i in a){ if(a[i] == num){ index = i; break; } } alert(index);</script>这种查找方式最简单,但是查找次数与数据量成正比,效率不高。
b、折半查找(二分查找)
假设在一个有序的数组中,可以利用折半查找,大幅度提高效率
/*折半查找* 思路:* (1)用start表示查找范围的起点,end表示终点* (2)只要start<=end就重复以下步骤* (3)和中间位置(mid)的那个数进行比较* a、相等:找到了,结束* b、大于:在前半段找,即end=mid-1* c、小于:在后半段找,级start=mid+1* (4)输出查找结果* */var a = [1,3,24,34,35,36,45,67,84,];var num = Number(prompt("请输入要查找的值:"));var index = -1;//最初认为要找的数不在数组中var start = 0;var end = a.length-1;while(start <= end){ var mid = Math.ceil((start+end)/2);//计算中间位置 if(num == a[mid]){ index = mid;//把找到的位置记下来 break; }else{ if(num > a[mid]){ //在后半段找 start = mid + 1; }else{ //在前半段找 end = mid - 1; } }}alert(index);折半查找的最坏查找次数与数据量的关系是对数关系,所以说它的查找效率很高,但是任何事物往往都有两面性,它是高效率也是有高代价的,也就是要求数组必须有序。
(2)排序(冒泡排序)
var a = [3,1,34,45,35,67,84,36,24,46]; for (var i=0; i<=a.length-1; i++) { for (var j=0; j<a.length-i-1; j++) { //不满足升序就对调 if (a[j] > a[j+1]) { var t = a[j]; a[j] = a[j+1]; a[j+1] = t; } } } alert(a.toString());(3)队列
先进先出(FIFO),在头部出队(shift),在尾部入队(push)
var a = [];a.push(1);document.write(a.toString() + "<br>");a.push(2);document.write(a.toString() + "<br>");a.push(3);document.write(a.toString() + "<br>");a.shift();document.write(a.toString() + "<br>");a.shift();document.write(a.toString() + "<br>");a.shift();document.write(a.toString() + "<br>");(4)堆栈
先进后出(FILO),在尾部进栈(push),在尾部出栈(pop)
var a = [];a.push(1);document.write(a.toString() + "<br>");a.push(2);document.write(a.toString() + "<br>");a.push(3);document.write(a.toString() + "<br>");a.pop();document.write(a.toString() + "<br>");a.pop();document.write(a.toString() + "<br>");a.pop();document.write(a.toString() + "<br>");
今天这篇是为了补充上次写的JS的数组内容,都是使用案例来说明这些知识。
阅读全文
0 0
- 数组-数组的应用
- Array数组的应用
- 控件数组的应用
- 数组的下标应用
- 字符串数组的应用
- 数组的简单应用
- PHP数组的应用
- 二维数组的应用
- 数组的应用
- 结构数组的应用
- java数组的应用
- Perl数组的应用
- Perl数组的应用
- 动态数组的应用
- 动态数组的应用
- shell 数组的应用
- 后缀数组的应用
- 指针数组的应用
- 17 多校 3
- CT之cnn
- 【POJ 3414】Pots(BFS)
- Error: Couldn't find preset "env" relative to directory
- 字符串
- 数组的应用
- POJ 3468 A Simple Problem with Integers (树状数组) (区间修改+区间查询)
- Python学习笔记(2)——Functions
- 暑假第四天总结
- js 其他对象
- 二级指针做输入的3种模型-2
- MFC 单文档应用程序如何为状态栏添加进度条
- Linux -bash: java: command not found 解决方法
- HDU 2689 Sort it 树状数组