이 글에서는 바이너리 방식을 사용하여 데이터를 찾는 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!