<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Insert title here</title>
<script type="text/javascript">
//封装的打印函数
function sop(data) {
document.write("<br/>");
document.write(data);
document.write("<br/>");
}
//封装打印数组的函数
function sopArray(arr) {
for ( var i = 0; i < arr.length; i++) {
document.write("<br/>");
document.write("arr[" + i + "]=" + arr[i]);
document.write("<br/>");
}
}
//=========================================//
//获取数组的最值
function getMax(arr) {
var maxValIndex = 0;
for ( var index = 1; index < arr.length; index++) {
if (arr[index] > arr[maxValIndex]) {
maxValIndex = index;
}
}
return arr[maxValIndex];
}
var arr = [ -1, 2, 5, 1 ];
var maxVal = getMax(arr);
sop("maxVal=" + maxVal);
//=========================================//
//选择排序
function selectSort(arr) {
for ( var i = 0; i < arr.length - 1; i++) {
for ( var j = i + 1; j < arr.length; j++) {
if (arr[i] > arr[j])
swap(arr, i, j);
}
}
return arr;
}
//数组元素交换为位置
function swap(arr, i, j) {
arr[i] = arr[i] ^ arr[j];
arr[j] = arr[i] ^ arr[j];
arr[i] = arr[i] ^ arr[j];
}
var arrAfterSelectSort = selectSort(arr);
sopArray(arrAfterSelectSort);
//=========================================//
//查找数组中的元素---使用 2分查找的前提:数组有序
function binarySearch(arr,key) {
var min,mid,max;
min = 0;
max = arr.length-1;
while(min<=max) {
mid = (min + max)>>1;
if(arr[mid]>key)
max = mid - 1;
else if(arr[mid]<key)
min = mid + 1;
else
return mid;
}
return -1;
}
var arr = [-1,2,2,3,4,5,6];
var key = 2;
var index = binarySearch(arr,key);
sop(key+"在数组arr中的角标 "+index);
//=========================================//
//数组反转
//前一个与最后一个交换位置,依此类推 。。。
function reverseArray(arr) {
for(var start=0,end=arr.length-1;start<end;start++,end--) {
swap(arr,start,end);
}
}
var arr = [1,2,3,4,5,6];
reverseArray(arr);
sopArray(arr);
</script>
</head>
<body>
</body>
</html>