快排,冒泡,二分查找,获取字符串重复次数

快排

	// 基本快排
	function quick(arr){
		if(arr.length <=1) return arr;
		var left = [];
		var right = [];
		var base = arr[0];
		for(var i = 1;i<arr.length;i++){
		  if(arr[i] > base){
		    right.push(arr[i])
		  }else{
		    left.push(arr[i])
		  }
		}
		return quick(left).concat(base,quick(right))
	} 
	console.log(quick([5,52,5,41,8,4,8,7,1,58,4,544,7,4,5,1]))

冒泡

	function Bubble(arr){
		if(arr.length <= 1) return arr;
		var len = arr.length;
		for(var i=0;i<len;i++){
		  for(var j=i+1;j<len;j++){
		    if(arr[i] > arr[j]){
		      var temp = arr[i];
		      arr[i] = arr[j];
		      arr[j] = temp;
		    }
		  }
		}
		return arr;
	}
	console.log(Bubble([5,52,5,41,8,4,8,7,1,58,4,544,7,4,5,1]))

二分查找

	// 有序查找 
	function erfenIndex(target,arr,start,end){
	   var start = start || 0;
	   var end = end || arr.length;
	   if(start > end)return -1;
	   var curr = parseInt(start + ( end - start ) / 2);
	   if(target == arr[curr]){
	     return curr;
	   }else if(target > arr[curr]){
	     return erfenIndex(target,arr,curr+1,end)
	   }else{
	     return erfenIndex(target,arr,start,curr-1)
	   }
	 }

获取字符串重复次数最多的字符和次数

	function maxShowNum(str){
	  var obj = {};
	  var key;
	  for(var i=0;i<str.length;i++){
	    key = str[i]
	    if(obj[key]){
	      obj[key]++;
	    }else{
	      obj[key] = 1;
	    }
	  }
	  var max = 0;
	  var max_key;
	  for(var i in obj){
	    if(max < obj[i]){
	      max = obj[i];
	      max_key = i;
	    }
	  }
	  return {
	    [max_key]:max
	  }
	}
	var str = "zhkzzzzzswnhwkluawjkanjklwhwkkk";
	console.log(maxShowNum(str))
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值