JS常见算法题整理

1.排序

1) 冒泡排序法:

1.比较相邻的两个元素,如果前一个比后一个大,则交换位置。

2.第一轮的时候最后一个元素是最大的一个。

3.按照步骤一的方法进行相邻两个元素的比较,由于最后一个元素已经是最大的了,因此最后一个元素不用比较。

例1:

<script>

var arr = [10,20,5,8,21,100,99];
function test() {
    for(var i = 0;i<arr.length;i++) {
        for(var k = 0; k < arr.length-i-1; k++) {
            if(arr[k]>arr[k+1]){
                var temp = arr[k+1];
                arr[k+1] = arr[k];
                arr[k] = temp;
            }
        }
    }
    document.write(arr);
}
    test();

</script>

2) sort排序:

例2:

<script>
var a=[10,20,5,8,21,100,99];
    a.sort(function(n1,n2){
    return n1-n2;
});
   document.write(a);
</script>

2.数组去重:

例3:

字符串去重

<script>
var str="aaabccdeeeeeeff";
var str1=str.split("");
var a=[];
for(i=0;i<str1.length;i++) {
    a.push(str1[i]);
    var count = 1;
    for (k = i; k < str1.length - 1; k++) {
        if (str1[i] == str1[k + 1]) {
            count++;
            str1.splice(k + 1, 1);
            k--;
        }
    }
}
    console.log(a);
</script>

例4:

数字去重(先排序)

   //数字去重:
//    输入: [1,13,24,11,11,14,1,2]
//    需要去掉重复的11 和 1 这两个元素
    var a=[1,13,24,11,11,14,1,2];
    a.sort(function(n1,n2){
        return n1-n2;
    });
    var b=[];
    for(i=0;i<a.length;i++) {
        b.push(a[i]);
        var count = 1;
        for (k = i; k < a.length - 1; k++) {
            if (a[i] == a[k + 1]) {
                count++;
                a.splice(k + 1, 1);
                k--;
            }
        }
    }
        console.log(b[i]);

例5:

不需要借助第三个临时变量,实现两个变量的交换:


        var a=10;
        var b=20;
        a=a+b;
        b=a-b;
        a=a-b;
        console.log(a);
        console.log(b);

 

  • 6
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值