【练习2】
完成对数组的如下操作:
3.查找;
4.反转。
【代码】
<html>
<head>
</head>
<body>
<script type="text/javascript">
//3.1一般查找
function searchElement(arr,key){
for(var x=0;x<arr.length;x++){
if(arr[x]==key)
return x;
}
return -1;
}
//3.2折半查找(前提:被查找的数组必须是有序的)
function binarySearch(arr,key){
var min,max,mid;
min=0;
max=arr.length-1;
while(min<max){
mid=(min+max)>>2;//位运算效率高
if(key>arr[mid])
min=mid+1;
else if(key<arr[mid])
max=mid-1;
else
return mid;
}
return -1;
}
//4.反转
function reverseArr(arr){
for(var start=0,end=arr.length-1;start<end;start++,end--){
swap(arr,start,end);
}
}
//交换数组元素
function swap(arr,x,y){
var temp = arr[x];
arr[x] = arr[y];
arr[y] = temp;
}
var arr = [1,2,3,4,5,6,7,8];
var keyNum = searchElement(arr,3);
document.write("keyNum="+keyNum+"<br/>");
var keyNum1 = binarySearch(arr,3);
document.write("keyNum1="+keyNum1+"<br/>");
document.write("反转前:"+arr+"<br/>");
reverseArr(arr);
document.write("反转后:"+arr+"<br/>");
</script>
</body>
</html>
【注】可以将这两个视频内容封装成一个js文件,那么后期如果需要对数组操作,直接导入js文件,直接用这些方法即可
【运行结果】
keyNum=2
keyNum1=2
反转前:1,2,3,4,5,6,7,8
反转后:8,7,6,5,4,3,2,1