算法随笔

1.冒泡排序的算法优化:

原代码:

public void bubbleSort(int[] a) {
    for(int i = a.length - 1; i > 0; i--) {
        for(int j = 0; j < i; j++) {
            if(a[j] > a[j+1])
                 //交换,具体实现略
                 swap(a, j, j+1); 
        }
    }
}

优化后代码:

public void bubbleSort(int[] a) {
   boolean exchange;
   for(int i = a.length - 1; i > 0; i--) {
       exchange = false;
       for(int j = 0; j < i; j++) {
           if(a[j] > a[j+1]) {
               swap(a, j, j+1);
               exchange = true;
           }
       }
       if(!exchange) return;
   }
}

(循序渐进带你学习时间复杂度和空间复杂度:https://mp.weixin.qq.com/s/GU7GyWj4njyNvNbFUT9yDg

(最常用的经典数据结构和算法汇总:https://mp.weixin.qq.com/s/WIAVIlh1yIEUcbgoHtRsxw) 

2.Hash:一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度的输入(又叫做预映射pre-image)通过散列算法变换成固定长度的输出,该输出就是散列值。这种转换是一种压缩映射,也就是,散列值的空间通常远小于输入的空间,不同的输入可能会散列成相同的输出,所以不可能从散列值来确定唯一的输入值。简单的说就是一种将任意长度的消息压缩到某一固定长度的消息摘要的函数。(https://blog.csdn.net/u014209205/article/details/80820263

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值