<script type="text/javascript">
/*
* 综合练习:
* 1,定义功能,完成对数组的最值获取。
*
* 2,对数组排个序。
*
* 3,对数组查个找。
*
* 4,对数组元素进行反转。
*
*/
var arr = [3,6,122,2,40,5,9];
var sequentialArray = [1,2,3,4,5,6,7,8,9,10];
// alert(binarySearch(sequentialArray,102));
// alert(getMax(arr));
// alert(sortArray(arr));
// alert(searchElement(arr,122));
// alert(reverseArray(arr));
//1,定义功能,完成对数组的最值获取。
function getMax(arr){
var max = 0;
for(var x=1;x<arr.length;x++){
if(arr[x]>arr[max])
max=x;
}
return arr[max];
}
//2,对数组排个序。
function sortArray(arr){
for(var y=0;y<arr.length-1;y++){
for(var z=y+1;z<arr.length;z++){
if(arr[y]>arr[z])
swap(arr,y,z);
}
}
}
//对数组中的元素置换位置。
function swap(arr,a,b){
var temp = arr[a];
arr[a] = arr[b];
arr[b] = temp;
}
// 3,对数组查个找。
function searchElement(arr,key){
for(q=0;q<arr.length;q++){
if(arr[q]==key)
return q;
}
return -1;
}
//折半查找的前提,必须是有序数组。
function binarySearch(arr,key){
var mid,min,max;
min=0;
max=arr.length-1;
while(min<=max){
mid=(min+max)>>1;
if(key>arr[mid])
min = min + 1;
else if(key<arr[mid])
max = max - 1;
else
return mid;
}
return -1;
}
// 4,对数组元素进行反转。
function reverseArray(arr){
for(var start=0,end=arr.length-1;start<end;start++,end--){
swap(arr,start,end);
}
return arr;
}
</script>