算法是什么(一)数组的算法记录
liuyuhang原创,未经允许禁止转载
从入门一个一个来吧,先说数组的算法:
1、求极值
int[] arr01 = { 1, 3, 5, 76, 23, 44, 15, 33, 9, -2, -9 }; int[] arr02 = { 2, 3, 7, 42, 23, 14, 55, 13, 0, -1, -7 }; int length = 11; int temp = arr01[0]; // 求最大值 for (int i = 1; i < length; i++) { if (arr01[i] > temp) { temp = arr01[i]; } } System.out.println("the max in arr01 is : " + temp); // 求最小值 for (int i = 1; i < length; i++) { if (arr01[i] < temp) { temp = arr01[i]; } } System.out.println("the min in arr01 is : " + temp);
2、排序
public static void main(String[] args) { int[] arr01 = { 1, 3, 5, 76, 23, 44, 15, 33, 9, -2, -9 }; int[] arr02 = { 2, 3, 7, 42, 23, 14, 55, 13, 0, -1, -7 }; int[] arr03 = { 1, 4, 9, 12, 33, 24, 25, 73, -4, -9, -17 }; int[] arr04 = { 0, 2, 11, 41, 63, 19, 51, -3, -2, 0, 3 }; int length = 11; System.out.println("jdk自带的快速排序法"); Arrays.sort(arr01); printArr(arr01); System.out.println("冒泡排序法 双层遍历,里层比外层移一位"); for (int i = 0; i < length - 1; i++) { for (int j = i + 1; j < length; j++) { if (arr02[i] > arr02[j]) {// 若前一个元素比后一个元素大,则交换位置 int temp = arr02[i]; arr02[i] = arr02[j]; arr02[j] = temp; } } } printArr(arr02); System.out.println("选择排序法,逐次[选择]出当前index后的最小元素,然后安排到当前index位置"); for (int i = 0; i < length - 1; i++) { int min = i;// 记录当前index for (int j = i + 1; j < length; j++) { if (arr03[min] > arr03[j]) {// 与当前对比,若有个更小的元素,则更换index为更小的index,循环后找到最小的元素的index min = j; } } if (min != i) {// 若最小元素的index与当前index不等,则交换当前元素与最小元素的index int temp = arr03[i]; arr03[i] = arr03[min]; arr03[min] = temp; } } printArr(arr03); } // 遍历 public static void printArr(int[] arr) { for (int i : arr) { System.out.print(i + " "); } System.out.println(); }
困,明天继续写!
3、求交集
4、求并集
5、求补集
6、去重复
7、求和
8、求平均
9、