算法与数据结构(1)

算法与数据结构

一 认识复杂度 对数器 二分法
1 固定时间的操作 常数操作 寻址(算偏移量)
2 不是固定时间的操作 链表寻址
3 复杂度
时间复杂度 数据量为N的样本 常数操作的数量 数组的排序 最高阶忽略常数项 O(N²)
​ 额外空间复杂度 在实现算法流程的过程中,需要开辟一些空间来支持算法流程,作为输入参数的空间,不算额外空间,作为输出结果的空间,不算额外空间。如果流程只需要开辟有限的几个变量,额外空间复杂度就是O(1)
​ 算法流程的常数项 我们会发现,时间复杂度这个指标是忽略低阶项和所有常数系数的。难道两个相同时间复杂度的流程,在实际运行时候就一样的好吗?当然不是,时间复杂度只是一个很重要的指标而已。如果两个时间复杂度一样的算法,你还要在时间上拼优劣,就进入到拼常数时间的阶段,简称拼常数项。
4 算法流程的常数项的比拼方式
放弃理论分析,生成随机数据直接测试
5 对数器
6 二分法
二 异或 位运算
异或运算:相同为0,不同为1 (二进制)
满足交换和集合定律
面试题 怎么最简单实现两个数交换


```java
package cn.qqjx.taobao;

public class Application {

    public static void main(String[] args) {
        int a = 100;
        int b = 50;
        System.out.println("交换前:"+a + "===="+b);
        a = a^b;
        b = a^b;
        a= a^b;
        System.out.println("交换后:"+a + "===="+b);
    }
}
    一个数组中有一种数出现了奇数次,其他数都出现了偶数次,怎么找到并打印这个数
   

public class Application2 {

    public static void main(String[] args) {
        int[] arr = {1,2,3,3,2,4,4};
        int resutl=0;
        for (int i = 0; i < arr.length; i++) {
            resutl = resutl^arr[i];
        }
        System.out.println("结果:"+resutl);
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值