<!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的一些基本函数(二分查找,排序等等)
猜你喜欢
转载自blog.csdn.net/e286878553/article/details/80738560
今日推荐
周排行