本篇文章主要介紹了JavaScript用二分法查找資料的實例程式碼,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟著小編過來看看吧
整理文檔,搜刮出一個JavaScript用二分法查找資料的實例程式碼,順便做個筆記
//二分法查数据 var arr=[41,43,45,53,44,95,23]; var b=44; var min=0; var max=arr.length; for(var i=1;i<arr.length;i++){ //外层循环控制排序的次数 for(var j=0;j<arr.length-i;j++){//内层循环控制循环的个数 if(arr[j]<arr[j+1]){ z=arr[j]; arr[j]=arr[j+1]; arr[j+1]=z; } } } // alert(arr[3]) while(true){ //二分查数就是先把一组数据按顺序排好后,从中间将这一组数据一分为二,看想要查得数在哪个范围内,然后再一分为二,直到找 /* for(var i=0;i<arr.length;i++)*/ //这么写不对? 这个数为止 var zjs=parseInt((min+max)/2); //因为(min+max)/2有可能为小数,所以加上一个整数强制转换 if(zjs==min){ 当要查找数的数组为一个偶数个数的数组的时候最后剩下的数的个数为2的时候,需要加个条件再给判断一下 if(b=arr[zjs+1]){ alert(zjs+1); break; } } if(b==arr[zjs]){ alert(zjs) break;} else if(b>arr[zjs]){ min=zjs; } else{max=zjs}}
10個成績求總分,最高分,最低分
var arr = new Array(80,70,86,58,90,35,89,67,50,100); var sum = 0; var maxd = 0; var mind = 100; //想要查最小数最好用满分最大数做可以比较的基数 for(var i=0;i<arr.length;i++){ sum = sum +arr[i]; if(arr[i]>maxd){ maxd = arr[i]; } if(arr[i]<mind){ mind = arr[i]; } } alert(sum); alert(maxd); alert(mind);
#在陣列中加入一個不重複的數
//var a=7; var a=parseInt(prompt("请输入一个数")); var x=0; var arr=[1,2,3,4,5] for(var i=0;i<arr.length;i++){ if(a==arr[i]){ x=1; break;}} if(x==0){ arr.push(a)} alert(arr.length)
二分法查找資料之前沒有接觸過類似的題,思路想不出,老師講完以後還是似懂非懂的樣子,自己敲出以後才感覺是懂了,冒泡排序看著挺容易的,但是到了自己去親自敲代碼的時候,自己又出錯,不能總是比著葫蘆畫瓢,應該有自己的理解,為什麼要這麼敲,多多敲敲代碼,避免以後再出類似的小錯誤,自己定義的變數要記住,前後呼應起來,不能定義的時候用的一個,用的時候又是另一個,還有分號記得加,花括號記得加。
以上是JavaScript如何使用二分法查找資料的方法介紹的詳細內容。更多資訊請關注PHP中文網其他相關文章!