演算法是什麼(一)陣列的演算法記錄
阿新 • • 發佈:2018-11-11
演算法是什麼(一)陣列的演算法記錄
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、