<!DOCTYPE html>
<html>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<head>
<title>函数练习</title>
</head>
<body>
<pre>
写一些具有如下功能的函数:
getMax(arr), sortArray(arr),
searchElement(arr,val), binarySearch(arr,val)
reverseArray(arr) 数组内容反转
</pre>
<script type="text/javascript" >
/取最值/
function getMax(arr){
var max=0;
for(var x=1;x<arr.length;x++){
if(arr[x]>arr[max]){
max=x;
}
}
return arr[max];
}
var arr=[23,4,34,65,23,45,56,76,23];
//var maxValue=getmax(arr);javascript是大小写敏感的和java一样,而html和css以及sql语言都是不敏感的
var maxValue=getMax(arr);
alert("hahhah");
alert("maxValue:"+maxValue);
</script>
<script type="text/javascript" >
排序(快速排序)
function sortArray(arr){
for(var x=0;x<arr.length-1;x++ ){
for(var y=x+1;y<arr.length;y++){
if(arr[x]>arr[y]){
swap(arr,x,y);
}
}
}
return arr;
}
function swap(arr,x,y){
var temp=arr[x];
arr[x]=arr[y];
arr[y]=temp;
}
sortArray(arr);
alert("newArr:"+arr);
///searchElement(arr,val)元素查找///
function searchElement(arr,val){
for(var x=0;x<arr.length;x++){
if(arr[x]==val){
return x;//返回元素的位置
}
}
return -1;//未找到
}
document.write("value:"+searchElement(arr, 56)+"</br>");
document.write("value:"+searchElement(arr, 0)+"</br>");
///二分查找///
function binarySearch(arr,key){
var right,left,mid;
left=0;
right=arr.length-1;
while(left<=right){ //bug: 必须要有"="号
mid = (left+right)>>1;
if(key>arr[mid]){//右半区
left=mid+1;
}else if(key<arr[mid]){//左半区
right=mid-1;
}else{//找到了
return mid;//6
}
}
return -1;//未找到
}
var a=binarySearch(arr, 56) ;
document.write("value2:" +a +"</br>");
function reverse(arr){
for(var start=0,end=arr.length-1;start<end;start++,end--){
swap(arr,start,end);
}
}
document.write("前:" +arr +"</br>");
reverse(arr);
document.write("后:" +arr);
</script>
</body>
</html>
关于javascript的一些基本函数(二分查找,排序等等)
最新推荐文章于 2021-11-17 17:00:31 发布