引言
Java作为一种广泛应用于企业级应用、Android开发、大数据处理等领域的编程语言,其核心算法的学习对于入门者来说至关重要。本文将为你推荐一系列精选资源,帮助你轻松掌握Java编程的核心算法。
Java编程基础
1. Java基础语法
- 资源:
- 《Java核心技术》作者:Cay S. Horstmann
- 代码示例:
public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!"); } }
2. Java面向对象编程
资源:
- 《Java核心技术卷2:高级特性》作者:Cay S. Horstmann
- 代码示例:
class Dog { private String name; public Dog(String name) { this.name = name; } public void bark() { System.out.println(name + " says: Woof!"); } } public class Main { public static void main(String[] args) { Dog myDog = new Dog("Buddy"); myDog.bark(); } }
Java核心算法
1. 排序算法
资源:
- 《数据结构与算法分析:Java语言描述》作者:Mark Allen Weiss
代码示例:
public class BubbleSort { public static void sort(int[] array) { int n = array.length; for (int i = 0; i < n - 1; i++) { for (int j = 0; j < n - 1 - i; j++) { if (array[j] > array[j + 1]) { int temp = array[j]; array[j] = array[j + 1]; array[j + 1] = temp; } } } } public static void main(String[] args) { int[] array = {5, 2, 8, 3, 1}; sort(array); for (int i : array) { System.out.print(i + " "); } } }
2. 查找算法
资源:
- 《算法导论》作者:Thomas H. Cormen等
代码示例:
public class BinarySearch { public static int search(int[] array, int key) { int low = 0; int high = array.length - 1; while (low <= high) { int mid = (low + high) >>> 1; int midVal = array[mid]; if (midVal < key) { low = mid + 1; } else if (midVal > key) { high = mid - 1; } else { return mid; // key found } } return -(low + 1); // key not found. } public static void main(String[] args) { int[] array = {1, 3, 5, 7, 9}; int key = 5; int result = search(array, key); if (result >= 0) { System.out.println("Element found at index " + result); } else { System.out.println("Element not found."); } } }
3. 图算法
- 资源:
- 《算法导论》作者:Thomas H. Cormen等
- 代码示例: “`java import java.util.ArrayList; import java.util.LinkedList; import java.util.List;
class Graph {
private final int V;
private List<List<Integer>> adj;
public Graph(int V) {
this.V = V;
adj = new ArrayList<>(V);
for (int i = 0; i < V; i++) {
adj.add(new LinkedList<>());
}
}
public void addEdge(int v, int w) {
adj.get(v).add(w);
adj.get(w).add(v);
}
public void DFS(int v) {
boolean[] visited = new boolean[V];
DFSUtil(v, visited);
}
private void DFSUtil(int v, boolean[] visited) {
visited[v] = true;
System.out.print(v + " ");
for (int n : adj.get(v)) {
if (!visited[n]) {
DFSUtil(n, visited);
}
}
}
}
public class Main {
public static void main(String[] args) {
Graph g = new Graph(4);
g.addEdge(0, 1);
g.addEdge(0, 2);
g.addEdge(1, 2);
g.addEdge(2, 0);
g.addEdge(2, 3);
g.addEdge(3, 3);
System.out.println("Following is Depth First Traversal (starting from vertex 2):");
g.DFS(2);
}
} “`
总结
通过以上精选资源,相信你已经对Java编程的核心算法有了初步的了解。在学习和实践过程中,不断积累经验,逐步提高自己的编程能力。祝你学习愉快!
