# 在Java中实现高效的算法与数据结构

1. 概述

2. 基本数据结构

Java提供了丰富的基本数据结构，如数组、链表、栈、队列等，它们是构建更复杂数据结构的基础。

package cn.juwatech.datastructures;

import java.util.ArrayList;
import java.util.List;
import java.util.Stack;
import java.util.Queue;

public class BasicDataStructures {

public static void main(String[] args) {

// 数组
int[] arr = new int[10];

// ArrayList
List<Integer> list = new ArrayList<>();

// Stack
Stack<Integer> stack = new Stack<>();
stack.push(1);
stack.push(2);
stack.push(3);

// Queue
queue.offer(1);
queue.offer(2);
queue.offer(3);
}
}


3. 排序算法实现

package cn.juwatech.algorithms;

import java.util.Arrays;

public class QuickSort {

public static void main(String[] args) {

int[] arr = {
5, 2, 9, 1, 5, 6};
quickSort(arr, 0, arr.length - 1);
System.out.println(Arrays.toString(arr));
}

public static void quickSort(int[] arr, int left, int right) {

if (left < right) {

int partitionIndex = partition(arr, left, right);
quickSort(arr, left, partitionIndex - 1);
quickSort(arr, partitionIndex + 1, right);
}
}

public static int partition(int[] arr, int left, int right) {

int pivot = arr[right];
int i = left - 1;
for (int j = left; j < right; j++) {

if (arr[j] <= pivot) {

i++;
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
int temp = arr[i + 1];
arr[i + 1] = arr[right];
arr[right] = temp;
return i + 1;
}
}


4. 树结构与遍历算法

package cn.juwatech.datastructures;

class TreeNode {

int val;
TreeNode left;
TreeNode right;

TreeNode(int x) {

val = x;
}
}

public class TreeTraversal {

public static void main(String[] args) {

TreeNode root = new TreeNode(1);
root.left = new TreeNode(2);
root.right = new TreeNode(3);
root.left.left = new TreeNode(4);
root.left.right = new TreeNode(5);

// 前序遍历
preorderTraversal(root);
// 中序遍历
inorderTraversal(root);
// 后序遍历
postorderTraversal(root);
}

public static void preorderTraversal(TreeNode root) {

if (root != null) {

System.out.println(root.val);
preorderTraversal(root.left);
preorderTraversal(root.right);
}
}

public static void inorderTraversal(TreeNode root) {

if (root != null) {

inorderTraversal(root.left);
System.out.println(root.val);
inorderTraversal(root.right);
}
}

public static void postorderTraversal(TreeNode root) {

if (root != null) {

postorderTraversal(root.left);
postorderTraversal(root.right);
System.out.println(root.val);
}
}
}


5. 算法复杂度分析

6. 总结

|
6天前
|

22 8
|
5天前
|

Java语言实现最短路径算法（Shortest Path）
Java语言实现最短路径算法（Shortest Path）
12 3
|
9天前
|

【数据结构】排序算法——Lesson2
【7月更文挑战第24天】
10 3
|
21天前
|

“解锁Python高级数据结构新姿势：图的表示与遍历，让你的算法思维跃升新高度
【7月更文挑战第13天】Python中的图数据结构用于表示复杂关系，通过节点和边连接。常见的表示方法是邻接矩阵（适合稠密图）和邻接表（适合稀疏图）。图遍历包括DFS（深度优先搜索）和BFS（广度优先搜索）：DFS深入探索分支，BFS逐层访问邻居。掌握这些技巧对优化算法和解决实际问题至关重要。**
18 1
|
12天前
|

12 0
|
12天前
|

Java演进问题之标记-复制算法导致更多的内存占用如何解决
Java演进问题之标记-复制算法导致更多的内存占用如何解决
29 0
|
12天前
|

21 0
|
12天前
|

19 0
|
12天前
|

24 0
|
12天前
|

21 0