js 数组的应用
2017-08-03 19:32
176 查看
(1)查找
indexOf系统提供的
我们也可以实现自己的查找方式
a. 循序查找
var a
= [3,7,11,43,87,5,99,22,51,8];
var num = Number(prompt("请输入要查找的数"));
var index = -1;//最初认为不在数组中
for(var i
in a){
if(a[i]==num){
index=i;
break;
}
}
alert(index);
这种查找方法最简单,但是查找次数与数据量成正比,效率不高。
b. 折半查找(二分查找)
假设在一个已近有序的数组中,可以利用折半查找大幅提高效率。
var a
= [3,5,7,8,11,22,43,51,87,99];
var num = Number(prompt("请输入要查找的数"));
var index = -1;//最初认为不在数组中
var start =
0;
var end = a.length-1;
while(start <=
end) {
var mid =
Math.ceil((start
+end)/<
4000
span style="color:#0000FF;">2) ;//计算中间
if (num
== a[mid]) {
index =mid;
break;
}else{
if(num >
a[mid]){
//在后半段找
start =mid+1;
}else{
//在前半段找
end =mid-1;
}
}
}
alert(index);
折半查找的最坏查找次数与数据的关系是对数关系,所以说它的查找效率很高,但是任何事情往往都有两面性,它的高效率也有高代价的,也就是要有顺序的。
排序:
(1) 冒泡排序
var a
= [3,7,11,43,87,5,99,22,51,8];
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());
(2)选择排序
扫描找到最小的,让最小的和最前面的数对调。一直这样循环下去到结束
(3)队列
先进先出(FIFO),在头部出队(shift),在尾部入队(push)。
(4)堆栈
先进后出(FILO),在头部出
indexOf系统提供的
我们也可以实现自己的查找方式
a. 循序查找
var a
= [3,7,11,43,87,5,99,22,51,8];
var num = Number(prompt("请输入要查找的数"));
var index = -1;//最初认为不在数组中
for(var i
in a){
if(a[i]==num){
index=i;
break;
}
}
alert(index);
这种查找方法最简单,但是查找次数与数据量成正比,效率不高。
b. 折半查找(二分查找)
假设在一个已近有序的数组中,可以利用折半查找大幅提高效率。
var a
= [3,5,7,8,11,22,43,51,87,99];
var num = Number(prompt("请输入要查找的数"));
var index = -1;//最初认为不在数组中
var start =
0;
var end = a.length-1;
while(start <=
end) {
var mid =
Math.ceil((start
+end)/<
4000
span style="color:#0000FF;">2) ;//计算中间
if (num
== a[mid]) {
index =mid;
break;
}else{
if(num >
a[mid]){
//在后半段找
start =mid+1;
}else{
//在前半段找
end =mid-1;
}
}
}
alert(index);
折半查找的最坏查找次数与数据的关系是对数关系,所以说它的查找效率很高,但是任何事情往往都有两面性,它的高效率也有高代价的,也就是要有顺序的。
排序:
(1) 冒泡排序
var a
= [3,7,11,43,87,5,99,22,51,8];
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());
(2)选择排序
扫描找到最小的,让最小的和最前面的数对调。一直这样循环下去到结束
(3)队列
先进先出(FIFO),在头部出队(shift),在尾部入队(push)。
(4)堆栈
先进后出(FILO),在头部出
相关文章推荐
- 数组信息[置顶] php数组转换js数组操作及json_encode应用
- js数组的应用
- js对数组的简单应用 以及escape编码
- js 中数组sort()和reverse()应用
- js---数组,定时器应用
- js数组应用
- JavaScript(js)构造器的应用(求数组中平均数及大于平均数的人数)
- WEB应用之: JS 数组的遍历与元素删除
- js数组应用
- JS:正则的应用,联动菜单,数组相…
- js数组应用
- js的简单数组的应用
- JS数组高级应用
- 十进制外的进制数在js数组里的应用
- js数组和字符串间的综合应用
- JS中数组的应用
- 原声JS中indexOf()方法在数组中的应用一
- JS数组的应用
- 关于JS数组应用的体会
- js数组应用