Java是一種高級編程語言,其流行程度與功能強大性使其成為最常用的編程語言之一。Java應(yīng)用于各種領(lǐng)域,包括軟件開發(fā)、金融、人工智能、網(wǎng)站開發(fā)等等,因此,Java編程者需要熟悉各種數(shù)據(jù)結(jié)構(gòu)和算法。
下面介紹一些Java編程中常用的數(shù)據(jù)結(jié)構(gòu)和算法:
1.數(shù)組
int[] array = {1,2,3,4};
2.鏈表
class LinkedListNode { int val; LinkedListNode next; LinkedListNode(int val) { this.val = val; this.next = null; } }
3.樹
class TreeNode { int val; TreeNode left; TreeNode right; TreeNode(int val) { this.val = val; this.left = null; this.right = null; } }
4.圖
class GraphNode { int val; Listneighbors; GraphNode(int val) { this.val = val; this.neighbors = new ArrayList<>(); } }
5.排序算法
//冒泡排序 public static void bubbleSort(int[] arr) { int len = arr.length; boolean flag = true; for (int i = 0; i< len - 1; i++) { for (int j = 0; j< len - i - 1; j++) { if (arr[j] >arr[j+1]) { int temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; flag = false; } } if (flag) { break; } } } //選擇排序 public static void selectSort(int[] arr) { int len = arr.length; for (int i = 0; i< len - 1; i++) { int minIndex = i; for (int j = i + 1; j< len; j++) { if (arr[j]< arr[minIndex]) { minIndex = j; } } int temp = arr[i]; arr[i] = arr[minIndex]; arr[minIndex] = temp; } } //插入排序 public static void insertSort(int[] arr) { int len = arr.length; for (int i = 1; i< len; i++) { int temp = arr[i]; int j = i - 1; while (j >= 0 && arr[j] >temp) { arr[j+1] = arr[j]; j--; } arr[j+1] = temp; } }
6.查找算法
//順序查找 public static int sequentialSearch(int[] arr, int target) { for (int i = 0; i< arr.length; i++) { if (arr[i] == target) { return i; } } return -1; } //二分查找 public static int binarySearch(int[] arr, int target) { int left = 0; int right = arr.length - 1; while (left<= right) { int mid = left + (right - left) / 2; if (arr[mid] == target) { return mid; } else if (arr[mid] >target) { right = mid - 1; } else { left = mid + 1; } } return -1; }
這些數(shù)據(jù)結(jié)構(gòu)和算法是Java編程中最常用的,掌握它們將使您的編程更加高效而有效。