# Algorithm **Repository Path**: gccai/algorithm ## Basic Information - **Project Name**: Algorithm - **Description**: js 和 golang 版本的算法 - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-08-02 - **Last Updated**: 2021-10-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 算法的两种语言实现 ## 简单排序的总结 1. 冒泡排序---- O(n^2) * 基本不用,不是稳定排序,但是考察的时候空间很大,就是优化 2. 选择排序---- O(n^2) * 3. 插入排序---- O(n)(最好的情况下) * 样本小且有序的时候效率比较高 ## 位操作 ### 与(&)操作 * 0&0 -> 0 * 0&1 -> 0 * 1&0 -> 0 * 1&1 -> 1 ** 总结:只有当俩位上都是1的时候,才是1,否则都是0 ** 与操作几种简单的小用途,待填加: 1. 如果要将一个数清零,只需要用这个数与0进行与操作 2. 如果我们要取x的某一位,那么我们就用这个一个该位是1 其余位是0的数进行相与即可。举例:x := 10101100,我们要知道第五六位,只需要与00001100相与即可,得00001100 ### 或(|)操作 * 1|1 -> 1 * 1|0 -> 1 * 0|1 -> 1 * 0|0 -> 0 在与操作中,如果我们要保留某个位原有的1,0 就要用一个新的数并且在要保留的位置上置成1 面或操作的话,我们要的是某些数据位是1,那么要乘的数该数据位就要是1. ### 异或操作(^) * 1^1 -> 0 * 1^0 -> 1 * 0^1 -> 1 * 0^0 -> 0 简单来说就是相同为0,不同为1. 一些操作:翻转某几数据位的10,就要在该位上是1,不翻转的位置0 你要是想保留原值,那你就要与0异或。