21xrx.com
2024-11-22 18:29:43 Friday
登录
文章检索 我的文章 写文章
我喜欢使用Java进行编程
2023-06-15 11:18:46 深夜i     --     --

我喜欢使用Java进行编程,尤其是其中的实现部分。实现是指在程序中具体执行某个操作的代码段,常常涉及到算法和数据结构。以下是我最近使用Java实现代码的三个实例。

第一个实例是基于Java实现的快速排序算法。快速排序算法常常被用于需要对大型数据集进行排序的场合。它是通过将待排序数组分成两个子数组来实现的,其中一个子数组中的元素都比另一个子数组中的元素小。然后,以递归方式对子数组进行排序。

以下是Java实现快速排序算法的代码示例:


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

  if (left < right) {

    int pivot = partition(arr, left, right);

    quickSort(arr, left, pivot - 1);

    quickSort(arr, pivot + 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++;

      swap(arr, i, j);

    }

  }

  swap(arr, i + 1, right);

  return i + 1;

}

public static void swap(int[] arr, int i, int j) {

  int temp = arr[i];

  arr[i] = arr[j];

  arr[j] = temp;

}

第二个实例是使用Java实现的二叉树数据结构。二叉树是由节点和它们之间的连边组成的数据结构,其中每个节点最多有两个子节点。二叉树通常用于搜索和排序算法中。以下是Java实现二叉树的代码示例:


public class TreeNode {

  int val;

  TreeNode left;

  TreeNode right;

  public TreeNode(int val)

    this.val = val;

    this.left = null;

    this.right = null;

  

}

public class BinaryTree {

  TreeNode root;

  

  public BinaryTree()

    this.root = null;

  

  

  public void insert(int val) {

    this.root = insertNode(this.root, val);

  }

  private TreeNode insertNode(TreeNode node, int val) {

    if (node == null) {

      node = new TreeNode(val);

    } else if (val < node.val) {

      node.left = insertNode(node.left, val);

    } else if (val > node.val) {

      node.right = insertNode(node.right, val);

    }

    return node;

  }

}

第三个实例是使用Java实现的哈希表数据结构。哈希表是由键和值组成的数据结构,其中可以通过键来访问值。哈希表通常用于需要快速搜索和插入的场合。以下是Java实现哈希表的代码示例:


public class HashMap {

  private int capacity;

  private float loadFactor;

  private int size;

  private Node [] table;

  public HashMap() {

    this.capacity = 16;

    this.loadFactor = 0.75f;

    this.size = 0;

    this.table = new Node[capacity];

  }

  private static class Node {

    private K key;

    private V value;

    private Node next;

    public Node(K key, V value)

      this.key = key;

      this.value = value;

      this.next = null;

    

  }

  public void put(K key, V value) {

    if (size >= capacity * loadFactor) {

      resize();

    }

    int hash = hash(key);

    Node node = table[hash];

    while (node != null) {

      if (node.key.equals(key))

        node.value = value;

        return;

      

      node = node.next;

    }

    node = new Node<>(key, value);

    node.next = table[hash];

    table[hash] = node;

    size++;

  }

  public V get(K key) {

    int hash = hash(key);

    Node node = table[hash];

    while (node != null) {

      if (node.key.equals(key))

        return node.value;

      

      node = node.next;

    }

    return null;

  }

  private int hash(K key) {

    return key.hashCode() % capacity;

  }

  private void resize() {

    capacity *= 2;

    Node [] newTable = new Node[capacity];

    for (Node node : table) {

      while (node != null) {

        Node next = node.next;

        int hash = hash(node.key);

        node.next = newTable[hash];

        newTable[hash] = node;

        node = next;

      }

    }

    table = newTable;

  }

}

以上就是我最近使用Java实现代码的三个实例。分别是快速排序算法、二叉树数据结构和哈希表数据结构。这些实现示例展示了Java的强大之处,使我能够轻松地实现复杂的算法和数据结构。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复