javascript算法

1.线性搜索

//A为数组,x为要搜索的值
		var mycars=new Array("Saab","Volvo","BMW")
		function linearSearch(A, x) {
		  for (var i = 0; i < A.length; i++) {
		    if (A[i] == x) {
		      return i;
		    }
		  }
		  return -1;
		}
		alert(linearSearch(mycars,"BMW"));

2.二分搜索

//A为已按"升序排列"的数组,x为要查询的元素
		//返回目标元素的下标
		var mycars4=new Array("6","7","8","9")
		function binarySearch(A, x) {
		  var low = 0, high = A.length - 1;
		   
		  while (low <= high) {
		    var mid = Math.floor((low + high) / 2); //下取整   
		 
		    if (x == A[mid]) {
		      return mid;
		    }
		    if (x < A[mid]) {
		      high = mid - 1;
		    }
		    else {
		      low = mid + 1;
		    }
		  }
		  return -1;
		}
		alert(binarySearch(mycars4,"9"));

3.冒泡排序

var mycars5=new Array(1234,31,100,65,2,23,123,123412,12356,1234,123,12565,4,343,24,2424,2413,567,845,237);
function bubbleSort(A) {
  for (var i = 0; i < A.length; i++) {
    var sorted = true;
  //注意:内循环是倒着来的
    for (var j = A.length - 1; j > i; j--) {
      if (A[j] < A[j - 1]) {
        swap(A, j, j - 1);
        sorted = false;
      }
    }
    if (sorted) {
      return A;
    }
   
  }
}



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

ligengdipan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值