解释下这段代码:public class HelloWorld { public static void main(String []args) { int[] arr = {18,13,50,15,4,17,18}; System.out.println("arr的排序前:\n18 13 50 15 4 17 18 "); int temp = 0 ; for(int i = 0 ;i< arr.length -1; i++){ for(int j = 0; j<arr.length-1-i; j++){ if(arr[j]>arr[j+1]){ temp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = temp; } } } System.out.println("arr排序后:"); for(int i = 0; i<arr.length; i++){ System.out.print(arr[i]+"\t"); } } }
时间: 2024-04-13 21:28:06 浏览: 111
这段代码是一个经典的冒泡排序算法的实现。它的作用是对一个整型数组进行排序。
首先,在主函数中定义了一个整型数组 arr,并初始化了数组的值。
然后,通过两个嵌套的 for 循环来进行冒泡排序。外层循环控制比较的轮数,内层循环控制每一轮的比较次数。
在内层循环中,通过比较相邻两个元素的大小,如果前一个元素大于后一个元素,则交换它们的位置。这样,每一轮比较都会将当前最大的元素移动到数组的末尾。
最后,通过循环遍历输出排序后的数组。
总之,这段代码实现了对数组 arr 的冒泡排序,并输出排序后的结果。
相关问题
解释这个代码public class ReverseStringArray { public static void inverse(String[] arr) { if (arr == null || arr.length == 0) { return; } int left = 0; int right = arr.length - 1; while (left < right) { String temp = arr[left]; arr[left] = arr[right]; arr[right] = temp; left++; right--; } } public static void main(String[] args) { String[] arr = {"hello", "world", "!"}; System.out.println("Original Array:"); for (String s : arr) { System.out.print(s + " "); } System.out.println(); inverse(arr); System.out.println("Reversed Array:"); for (String s : arr) { System.out.print(s + " "); } }}
这段代码实现了一个反转字符串数组的方法。具体来说,它包括两个方法:
1. `inverse` 方法接收一个字符串数组作为参数,通过双指针遍历数组,将数组中的元素从两端开始交换,直到整个数组被反转。反转后的数组将直接修改原数组,没有返回值。
2. `main` 方法在主函数中定义了一个字符串数组 `arr`,并打印出原始数组的内容。然后调用 `inverse` 方法反转该数组,并再次打印出反转后的数组。
通过这个例子,你可以学习到如何使用双指针遍历数组,并且可以通过修改原数组来实现数组反转。
请将Simple类由非泛型类改为泛型类,并用int数组、float数组和string数组进行测试。
好的,将Simple类改为泛型类后,可以用以下代码进行int数组、float数组和string数组的测试:
```
public class Simple<T> {
private T[] arr;
public Simple(T[] arr) {
this.arr = arr;
}
public void print() {
for (T t : arr) {
System.out.print(t + " ");
}
System.out.println();
}
}
```
测试代码如下:
```
public static void main(String[] args) {
Integer[] intArr = {1, 2, 3};
Simple<Integer> intSimple = new Simple<>(intArr);
intSimple.print();
Float[] floatArr = {1.1f, 2.2f, 3.3f};
Simple<Float> floatSimple = new Simple<>(floatArr);
floatSimple.print();
String[] strArr = {"Hello", "World", "!"};
Simple<String> strSimple = new Simple<>(strArr);
strSimple.print();
}
```
输出结果:
```
1 2 3
1.1 2.2 3.3
Hello World !
```
希望能够解决您的问题!
阅读全文