返回顶部
首页 > 资讯 > 后端开发 > JAVA >Java 数组编程算法学习笔记:让你的代码更加优美
  • 0
分享到

Java 数组编程算法学习笔记:让你的代码更加优美

数组编程算法学习笔记 2023-10-13 01:10:54 0人浏览 佚名
摘要

Java 数组是 Java 中最常用的数据结构之一。数组是一种有序的集合,可以通过索引访问其中的元素。在 Java 编程中,数组可以用来存储一组相同类型的数据,例如整数、浮点数、字符等。在本文中,我们将学习一些 Java 数组编程算法,这

Java 数组是 Java 中最常用的数据结构之一。数组是一种有序的集合,可以通过索引访问其中的元素。在 Java 编程中,数组可以用来存储一组相同类型的数据,例如整数、浮点数、字符等。在本文中,我们将学习一些 Java 数组编程算法,这些算法可以帮助我们更加优美地编写代码。

一、Java 数组的基本操作

在 Java 中,可以使用以下语法定义一个数组:

int[] nums = new int[10];

这将创建一个包含 10 个整数的数组。可以使用以下语法访问数组中的元素:

nums[0] = 1;
int x = nums[0];

这将分别将数组的第一个元素设置为 1,以及将第一个元素的值赋给变量 x。

还可以使用以下语法创建一个已知元素的数组:

int[] nums = {1, 2, 3, 4, 5};

这将创建一个包含 5 个整数的数组,其中每个元素的值分别为 1、2、3、4 和 5。

二、Java 数组的排序算法

Java 中有多种排序算法可以用来对数组进行排序。其中最常用的算法是快速排序和归并排序。

  1. 快速排序

快速排序是一种基于比较的排序算法,它的时间复杂度为 O(nlogn)。快速排序的思想是将数组分成两个子数组,其中一个子数组的所有元素都比另一个子数组的元素小,然后递归地对两个子数组进行排序。

以下是 Java 中的快速排序算法实现:

public static void quickSort(int[] nums, int left, int right) {
    if (left < right) {
        int pivotIndex = partition(nums, left, right);
        quickSort(nums, left, pivotIndex - 1);
        quickSort(nums, pivotIndex + 1, right);
    }
}

public static int partition(int[] nums, int left, int right) {
    int pivot = nums[left];
    int i = left + 1;
    int j = right;
    while (i <= j) {
        while (i <= j && nums[i] < pivot) {
            i++;
        }
        while (i <= j && nums[j] > pivot) {
            j--;
        }
        if (i <= j) {
            int temp = nums[i];
            nums[i] = nums[j];
            nums[j] = temp;
            i++;
            j--;
        }
    }
    int temp = nums[left];
    nums[left] = nums[j];
    nums[j] = temp;
    return j;
}
  1. 归并排序

归并排序是一种稳定的排序算法,它的时间复杂度为 O(nlogn)。归并排序的思想是将数组分成两个子数组,分别对这两个子数组进行排序,然后将它们合并成一个有序的数组。

以下是 Java 中的归并排序算法实现:

public static void mergeSort(int[] nums, int left, int right) {
    if (left < right) {
        int mid = (left + right) / 2;
        mergeSort(nums, left, mid);
        mergeSort(nums, mid + 1, right);
        merge(nums, left, mid, right);
    }
}

public static void merge(int[] nums, int left, int mid, int right) {
    int[] temp = new int[right - left + 1];
    int i = left;
    int j = mid + 1;
    int k = 0;
    while (i <= mid && j <= right) {
        if (nums[i] < nums[j]) {
            temp[k++] = nums[i++];
        } else {
            temp[k++] = nums[j++];
        }
    }
    while (i <= mid) {
        temp[k++] = nums[i++];
    }
    while (j <= right) {
        temp[k++] = nums[j++];
    }
    for (int p = 0; p < temp.length; p++) {
        nums[left + p] = temp[p];
    }
}

三、Java 数组的查找算法

Java 中有多种查找算法可以用来在数组中查找元素。其中最常用的算法是二分查找。

  1. 二分查找

二分查找也叫折半查找,它的时间复杂度为 O(logn)。二分查找的思想是将数组分成两个部分,如果要查找的元素比中间元素小,则在左半部分继续查找;如果要查找的元素比中间元素大,则在右半部分继续查找。

以下是 Java 中的二分查找算法实现:

public static int binarySearch(int[] nums, int target) {
    int left = 0;
    int right = nums.length - 1;
    while (left <= right) {
        int mid = (left + right) / 2;
        if (nums[mid] == target) {
            return mid;
        } else if (nums[mid] < target) {
            left = mid + 1;
        } else {
            right = mid - 1;
        }
    }
    return -1;
}

四、Java 数组的应用

Java 数组在编程中有广泛的应用,以下是一些常见的应用场景:

  1. 计算数组中的最大值和最小值

可以使用以下代码计算数组中的最大值和最小值:

int max = nums[0];
int min = nums[0];
for (int i = 1; i < nums.length; i++) {
    if (nums[i] > max) {
        max = nums[i];
    }
    if (nums[i] < min) {
        min = nums[i];
    }
}
  1. 数组去重

可以使用以下代码对数组进行去重:

Set<Integer> set = new HashSet<>();
for (int i = 0; i < nums.length; i++) {
    set.add(nums[i]);
}
int[] result = new int[set.size()];
int i = 0;
for (int num : set) {
    result[i++] = num;
}
  1. 数组求和

可以使用以下代码计算数组中所有元素的和:

int sum = 0;
for (int i = 0; i < nums.length; i++) {
    sum += nums[i];
}

结语

Java 数组编程算法是 Java 编程中的重要知识点。掌握了这些算法,我们可以更加优美地编写代码,提高程序的效率和质量。希望本文对大家有所帮助。

--结束END--

本文标题: Java 数组编程算法学习笔记:让你的代码更加优美

本文链接: https://lsjlt.com/news/429981.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作