Q:为什么使用位运算?A:位运算在特定场景下能够显著优于算术运算,因为位运算直接对整数的二进制位进行操作,通常不涉及复杂的数学计算,因此速度更快我们可以运用位运算时间 < 算术运算时间的原理,在一些场景中用位运算代替算术运算例如:1、判断奇偶性n & 1速度优于n & 22、交互两个整数的值a ^= b; b ^= a; a ^= b;速度优于
步长分组的插入排序public class ShellSort { public static void main(String[] args) { int[] data = {15, 9, 7, 8, 20, -1, 4}; shellSort(data); } private static void shellSort(int[] da
方案一、递推递推 + 回溯public class NQueen { private static final int N = 4; public static void main(String[] args) { int i, count = 1; int[] pos = new int[N + 1]; i = 1;
public class Solution { public static void main(String[] args) { Solution solution = new Solution(); int[] arr = {5, 4, 3, 2, 1}; solution.mergeSort(arr, 0, arr.length-1);
public class Solution { public static void main(String[] args) { Solution solution = new Solution(); int[] arr = {5, 2, 3, 4, 1}; solution.insertSort(arr); } priva
时间复杂度:public int strStr(String haystack, String needle) { int[] next = new int[needle.length()]; //next数组的生成 next[0] = 0; int prefixLen = 0;//共同前后缀长度 int i = 1,
private static void heapSort(int[] arr) { int n = arr.length; while (n != 0) { //1、把数组变成大顶堆 for (int i = n / 2; i >= 0; i--) { int left = i
public static void main(String[] args) { // int[] v = {1500, 3000, 2000}, w = {1, 4, 3}; // int t = 4; int[] v = {1, 6, 18, 22, 28}, w = {1, 2, 5, 6, 7}; int t = 11;
public class ShellSort { public static void main(String[] args) { int[] data = {15, 9, 7, 8, 20, -1, 4}; shellSort(data); } private static void shellSort(int[] data) {
这里是用26个字母为搜索结构的,后期可以改为用Map结构的,这样的话适用性更高/** * 前缀树类 */ static class TreeNode { /** * pass=1 我和我下面有1个单词 */ public int pass; /** * end=1 1代表结束了 */ public int en
Copyright © 2005-2024 51CTO.COM 版权所有 京ICP证060544号