Arrays类及冒泡排序
Arrays类及冒泡排序
Arrays类
- 数组的工具类java.util.Arrays
- 由于数组对象本身并没有什么方法可以提供我们调用,但API中提供了一个工具类Arrays供我们使用,从而可以对数据对象进行一些基本的操作
- 查看JDK帮助文档
- Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用,而不用“使用对象来调用”(注意:是“不用”,而不是“不能”)
- 具有以下常用功能:
- 给数组赋值:通过fill()方法
- 对数组排序:通过sort()方法,按升序
- 比较数组:通过equals()方法比较数组中元素是否相等
- 查找数组元素:通过binarySearch()方法能对排序好的数组进行二分查找法操作
代码示例:
import java.util.Arrays;
public class Demo03 {
public static void main(String[] args) {
int[] a = {215,156,6,66,53,164,48,1,53};
//打印数组中的所有元素
System.out.println("数组中的元素:"+Arrays.toString(a));
//升序排序
Arrays.sort(a);
System.out.println("按升序排序后的数组:"+Arrays.toString(a));
//数据填充
Arrays.fill(a,1);
System.out.println("被1填充后的数组:"+Arrays.toString(a));
}
}
运行结果:
冒泡排序
- 冒泡排序是最出名的排序算法之一,总共八大排序
- 算法的时间复杂度为O(n^2)
import java.util.Arrays;
public class Demo04 {
public static void main(String[] args) {
int[] a = {1,56,4,64,2,13,56,46,1,33,45,2};
sort(a);
System.out.println(Arrays.toString(a));
}
public static void sort(int[] arrays){
//临时变量t用于交换数据
int t = 0;
//外层循环,判断要走多少次
for (int i = 0; i < arrays.length-1 ; i++) {
//内层循环,比较两个数,如果前一个数比后一个数大,交换两数的位置
for (int j = 0; j < arrays.length-1-i ; j++) {
if (arrays[j]>arrays[j+1]){
t = arrays[j];
arrays[j] = arrays[j+1];
arrays[j+1] = t;
}
}
}
}
}
运行结果: