数组

数组概念
Java数组是一种数据结构,用于在计算机内存中连续存储相同类型的数据。数组中的每个元素可以通过索引来访问,索引通常是从0开始的。数组是Java中用于处理集合的基础,它提供了一种方式来存储和操作固定大小的同类型数据项的集合。
一维数组

数组的声明和创建

在Java中,你可以通过以下方式声明和创建数组:

// 声明一个整型数组变量,但没有创建数组
int[] numbers;

// 创建一个长度为5的整型数组,并初始化为0
numbers = new int[5];

// 声明并初始化一个整型数组
int[] anotherNumbers = {1, 2, 3, 4, 5};

// 声明并初始化一个字符串数组
String[] names = {"Alice", "Bob", "Charlie"};

三种格式:

1.(默认初始值)数据类型[ ]数组名 = new 数据类型 [ 数据的个数]

int [ ] money = new int[100];

2.(赋予初始值)数据类型[ ]数组名 = new 数组类型 [ ]{数据1,数据2,数据3,...}

int [ ] money = new int [ ]{ 100,200,300}

3.数据类型 [ ] 数组名 ={数据1,数据2,数据3}

int [ ] money = {100,200,300}

访问数组元素

数组越界 编译不会出错 运行会报错

你可以通过索引来访问数组中的元素,如下所示:

int secondNumber = numbers[1]; // 访问数组中的第二个元素(索引为1)
System.out.println(secondNumber);

遍历数组

你可以使用循环来遍历数组中的所有元素,如下所示:

for (int i = 0; i < numbers.length; i++) {
System.out.println(numbers[i]);
}

或者使用增强的for循环(也称为“for-each”循环):

for (int num : numbers) {
System.out.println(num);
}

注意:在Java中,数组是引用类型,数组变量实际上存储的是对数组对象的引用,而不是数组本身。因此,当你将一个数组变量赋值给另一个数组变量时,你实际上是在复制引用,而不是数组的内容。如果你希望复制数组的内容,你需要手动创建一个新数组,并将原始数组的元素复制到新数组中。

冒泡排序法

注:1.肯定是两个for循环

​ 2.边界值

(Bubble Sort)是一种简单的排序算法,它重复地遍历要排序的数列,一次比较两个元素,如果它们的顺序错误就把它们交换过来。遍历数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越小(或越大)的元素会经由交换慢慢“浮”到数列的顶端。

下面是Java实现冒泡排序的一个基本例子:

public class BubbleSortExample {
public static void main(String[] args) {
int[] arr = {64, 34, 25, 12, 22, 11, 90};
bubbleSort(arr);
System.out.println("Sorted array");
printArray(arr);
}

// 冒泡排序函数
static void bubbleSort(int arr[]) {
int n = arr.length;
for (int i = 0; i < n-1; i++) //两两比较,最后一个是无法比较的 for (int j = 0; j < n-i-1; j++)
if (arr[j] > arr[j+1]) {
// 交换 arr[j+1] 和 arr[j]
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}

// 打印数组函数
static void printArray(int arr[]) {
int n = arr.length;
for (int i=0; i < n; ++i)
System.out.print(arr[i] + " ");
System.out.println();
}

}

在这个例子中,bubbleSort 方法接受一个整数数组作为参数,并使用冒泡排序算法对其进行排序。排序过程是通过两层嵌套的for循环实现的,外层循环控制排序的总轮数,内层循环进行实际的比较和交换操作。在内层循环中,如果当前元素比下一个元素大,则交换这两个元素的位置。

printArray 方法用于打印排序后的数组。

需要注意的是,冒泡排序的时间复杂度为O(n^2),在数据规模较大时效率较低,因此它更适用于数据规模较小的情况或作为教学示例。在实际应用中,通常会选择更高效的排序算法,如快速排序、归并排序等。

posted @ 2024-08-06 09:39  curry库-04049  阅读(29)  评论(0)    收藏  举报