数据结构与算法工具类自用(不定时更新)
目前针对基础的整数排序问题和数组较为实用。
public class AlgoUtils {
/**
* 对数器, 返回int数组
* @param maxLen 数组长度范围[0, maxLen-1]
* @param maxValue 数组元素值范围[0, maxValue-1]
* @return int[]
*/
public static int[] LogarithmicDetector(int maxLen, int maxValue) {
int len = (int)(Math.random() * maxLen);
int[] ans = new int[len];
for (int i = 0; i < len; i++) {
ans[i] = (int)(Math.random() * maxValue);
}
return ans;
}
/**
* 复制一个数组的值
* @param arr 数组
* @return
*/
public static int[] copyArray(int[] arr) {
int[] ans = new int[arr.length];
for (int i = 0; i < arr.length; i++) {
ans[i] = arr[i];
}
return ans;
}
/**
* arr1 与 arr2 等长
* @param arr1
* @param arr2
* @return
*/
public static boolean equalArray(int[] arr1, int[] arr2) {
for (int i = 0; i < arr1.length; i++) {
if (arr1[i] != arr2[i]) {
return false;
}
}
return true;
}
public static void printArray(int[] arr) {
StringBuilder sb = new StringBuilder();
sb.append("[ ");
for (int i = 0; i < arr.length; i++) {
sb.append(arr[i]);
if (i != arr.length - 1) {
sb.append(", ");
}
}
sb.append(" ]");
System.out.println(sb.toString());
}
}