Maison >interface Web >js tutoriel >Présentation de la méthode de dichotomie dans js et de l'exemple de code pour la déduplication

Présentation de la méthode de dichotomie dans js et de l'exemple de code pour la déduplication

零下一度
零下一度original
2017-07-17 16:04:351615parcourir
<!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>

Les algorithmes sont une chose merveilleuse et j'espère que nous pourrons communiquer davantage.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn