摘要: 6:异或运算 异或运算:相同为0,不同为1 同或运算:相同为1,不同为0 So,异或运算记成无进位相加 int a = 7; Binary 00111 int b= 13; 01101 a^b = ? 01010 = 10 性质: 1) 0^N = N 2) N^N= 0 3)满足交换律和结合律 a 阅读全文
posted @ 2022-05-03 13:05 yzmarcus 阅读(99) 评论(0) 推荐(0)
摘要: 5:二分法 常见的二分是在有序数组上的开展的二分搜索。 有时,有序非必要条件,会给定特定条件,只要能正确构建左右两侧的淘汰逻辑,就可以二分。 二分最经典的例子:取一半时,向下取整 在有序数组中,找某个数是否存在。 比较 mid = (L+R)/2 不安全,会溢出 mid = L + ((R - L) 阅读全文
posted @ 2022-05-03 10:09 yzmarcus 阅读(49) 评论(0) 推荐(0)
摘要: 4:对数器 没有OJ怎么办? 问题,总有办法解决,有差办法比如纯暴力的尝试,有最优解。总可以搞出2种以上的解决思路。 产生随机数据在2套思路中跑出来的数据进行对比,如果几百万次,几千万次,跑出来的结果都是一样的,小概率事件:我们写的最优解出错。 1 public static void main(S 阅读全文
posted @ 2022-05-03 09:59 yzmarcus 阅读(27) 评论(0) 推荐(0)
摘要: 3:插入排序 插入排序思想描述: 1、数组0到0位置,只有1个数,必定有序 2、数组0~1位置,盯着1位置的数,往左看:如果arr[1]>arr[0]停止。否则arr[0]与arr[1]交换, 再看arr[0]的左边有没有数,没数了停止。此时0~1位置上数有序。 3、数组0~2位置,盯着2位置的数, 阅读全文
posted @ 2022-05-02 13:07 yzmarcus 阅读(27) 评论(0) 推荐(0)
摘要: 2:冒泡排序 冒泡排序思想描述: 1、第一轮:从小到大两两比较0~1 1~2 2~3 3~4 4~5 5~6 .... N-2~N-1,谁大谁往后。第一轮把最大的那个数,排到N-1位置上。 2、第二轮:两两比较0~1 1~2 2~3 3~4 4~5 5~6 .... N-3~N-2,谁大谁往后。第二 阅读全文
posted @ 2022-05-02 12:45 yzmarcus 阅读(33) 评论(0) 推荐(0)
摘要: 选择排序算法思想描述: 1、定义变量minIndex每次都指向全局最小值 2、从数组0位置开始,minIndex = 0,把1~N-1位置上的每一个数依次取出(用下标j指向)和minIndex位置的数比较, 如果取出的这个数arr[j]比arr[minIndex]的数小,更新minIndex = j 阅读全文
posted @ 2022-05-02 11:36 yzmarcus 阅读(61) 评论(0) 推荐(0)
摘要: 督促自己完成基础算法的学习 阅读全文
posted @ 2022-04-30 12:35 yzmarcus 阅读(16) 评论(0) 推荐(0)