您的当前位置:首页正文

介绍js中二分法,去重的实例代码

2020-11-27 来源:化拓教育网

<!DOCTYPE html>
<html>
	<head>
	<meta charset="UTF-8">
	<title></title>
	</head>
	<body>
	
	</body>
	<script type="text/javascript">
	var arr =[1,2,3,4,5,6,7,8,9,0,8,5,5,4,3];
	//创建一个数组
	function findInArr(arr,n){
	//循环数组中的每一项如果它的每一个i项与n相等就返回继续执行
	for (var i=0;i<arr.length;i++){
	if (arr[i] == n){
	return true;
	}
	}
	 return false;
	}
	function removeDup(arr,s,e){
//	判断这个数组,的开始顺序,和这个数组是不是首项和尾项相等
	if (s>e) {
	return false;
	} else if(s==e){
	return [arr[s]];
	}
//	将数组进行二分,找到中间项,将数组分为两部分
	var c= Math.floor((s+e)/2);
	var l = removeDup(arr,s,c);
	var r = removeDup(arr,c + 1,e);
	for (var i=0;i< r.length; i++) {
	if (!findInArr(l,r[i])) {
	l.push(r[i])
	}
	}
	return l;
	}
	console.log(removeDup(arr,0,arr.length-1))
	</script>
</html>

  算法是一种很奇妙的东西,希望能多多交流。