二分查找法二分排序法,返回最接近的位置和实际位置
Posted caoke
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了二分查找法二分排序法,返回最接近的位置和实际位置相关的知识,希望对你有一定的参考价值。
//二分查找法,返回最接近的位置和实际位置 function binary_find(id,hasSortArr){ let l=0,r=hasSortArr.length; let index=-1; while(r-l>0){ const m=(l+r)>>1; const mid=hasSortArr[m] //比较下坐标大小 const order=id>mid?1:(id<mid?-1:0) if(order===1){ l=Math.max(l+1,m) }else if(order===-1){ r=Math.min(r-1,m) }else{ l=r=m; index=m; } } return [(l+r)>>1,index] } //二分法去重排序 function binary_sort(str) { const sa=[] for(let i=0;i<str.length;i++){ const [n,index]=binary_find(str[i],sa); if(index===-1){ sa.splice(n,0,str[i]) } } return sa; } let str=‘safsdfafd12你3123123‘; console.log(binary_sort(str)); /*[ ‘1‘, ‘2‘, ‘3‘, ‘a‘, ‘d‘, ‘f‘, ‘s‘, ‘你‘ ]*/
以上是关于二分查找法二分排序法,返回最接近的位置和实际位置的主要内容,如果未能解决你的问题,请参考以下文章