[ 算法随笔 | 青训营笔记]

109 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 10 天

1.异或运算

异或运算还可以理解为无进位相加

1675239892936.png

性质

1675241101606.png 同一批数异或起来结果都是相同的 和选择谁先谁后的结果是无关的

由异或实现的两个变量的交换

1675240269660.png

能这么干的前提是a和b在内存里是两块独立的区域 a和b值相等可以,但是ab所指向的内存是两块东西就会洗成0了

实例

一个数组中只有一个数出现了奇数次,找到一个数组中出现奇数次的数

1675240983165.png

1675240998759.png

位运算把一个不等于0的数最右侧的1提取出来

a&(~a+1)

2.排序

选择排序

1675257155979.png

冒泡排序

1675257110217.png

插入排序

image.png

归并排序

1675396876143.png

1675397583321.png

流程优化方向

1.数据状况 2.问题标准

比较器

1675762773295.png

Integer

Integer 类在对象中包装了一个基本类型 int 的值。Integer 类对象包含一个 int 类型的字段。此外,该类提供了多个方法,能在 int 类型和 String 类型之间互相转换,还提供了处理 int 类型时非常有用的其他一些常量和方法。

Integer 类的构造方法

Integer 类中的构造方法有以下两个:

  • Integer(int value):构造一个新分配的 Integer 对象,它表示指定的 int 值。
  • Integer(String s):构造一个新分配的 Integer 对象,它表示 String 参数所指示的 int 值。

例如,以下代码分别使用以上两个构造方法来获取 Integer 对象:

  1. Integer integer1 = new Integer(100); // 以 int 型变量作为参数创建 Integer 对象

  2. Integer integer2 = new Integer("100"); // 以 String 型变量作为参数创建 Integer 对象

  3. int max_value = Integer.MAX_VALUE; // 获取 int 类型可取的最大值

  4. int min_value = Integer.MIN_VALUE; // 获取 int 类型可取的最小值

  5. int size = Integer.SIZE; // 获取 int 类型的二进制位

  6. Class c = Integer.TYPE; // 获取基本类型 int 的 Class 实例

算法很大,从小处做起,敲下字节开始跳动

18岁的路岔,身后托依着14亿擘画,广众建广厦;18岁的仰望,心中炽热着五十六番滚烫,群族谱群唱;18岁的稚气,梦中波澜着五千年的神秘,古国存古义;18岁的单薄,脚下雄浑着960万平方公里的巍峨,厚土载厚德。中国青年,生长于斯,念兹在兹。