冒泡排序法
思路:每次比较相邻两数,小的交换到前面,每轮结束后最大的数交换到最后
口决:N 个数字来排队,两两相比小靠前,外层循环 N-1,内层循环 N-1-I
示例:
public static void main(String[] args) { Scanner sc = new Scanner(System.in); int arr[]=new int[5]; int terr=0; System.out.println("输入5个整数"); for (int i = 0; i < 5; i++) { arr[i]=sc.nextInt(); } for (int i1 = 0; i1 < 5; i1++) { for (int j = 0; j < i1; j++) { if (arr[j]>arr[i1]) { terr=arr[i1]; arr[i1]=arr[j]; arr[j]=terr; } } System.out.println(); } for (int i2 = 0; i2 < 5; i2++) { System.out.print(arr[i2]+" "); } }
Arrays为数组排序
java.util包提供的工具类
Arrays类提供操作数组的方法,如:排序、查询
Arrays类的sort()方法: 对数组进行升序排列
语法:Arrays.sort(数组名);
使用Arrays类的各种方法
方法名称 | 说明 |
---|---|
boolean equals(array1,array2) | 比较array1和array2两个数组是否相等 |
sort(array) | 对数组array的元素进行升序排列 |
String toString(array) | 将一个数组array转换成一个字符串 |
void fill(array,val) | 把数组array所有元素都赋值为val |
copyOf(array,length) | 把数组array复制成一个长度为length的新数组,返回类型与复制的数组一致 |
int binarySearch(array, val) | 查询元素值val在数组array中的下标(要求数组中元素已经按升序排列) |
System.out.println("----equals比较两个数组值是否相等-------"); int nums1[] = new int[]{11,22,33}; int nums2[] = new int[]{11, 22, 333};//比较两个数组是否相等 boolean boo1 = Arrays.equals(nums1, nums2); System.out.println(boo1); System.out.println("-----sort数组升序排列--—-----"); int num3[] = {11, 99, 22, 44, 33, 88}; Arrays.sort(num3);//数组升序排列//将数组转换为string //将数组转换为(Num3);//数组字符串 System.out.println(Arrays.toString(num3)); System.out.println("-----fill将数组中的值全部替换为val---"); String names[] = {"张三", "李四", "王五"}; //将所有数值替换为马六 Arrays.fill(names, "马六"); System.out.println(Arrays.toString(names)); System.out.println("-------copyOf复制一个数组并给定新的长度---"); int ages1[] = {18, 19, 20}; int ages2[] = Arrays.copyOf(ages1, 10); System.out.println(Arrays.toString(ages2)); System.out.println(" -----binarySearch查询数组中是否存在指定内容存在返回下标(此数组必须升序)-----"); int arrs[] = {10, 20, 50, 80, 30}; Arrays.sort(arrs); System.out.println(Arrays.toString(arrs)); //查询数组中是否存在指定内容存在返回下标(此数组必须升序) int index = Arrays.binarySearch(arrs, 30); System.out.println(index);
二维数组
int [ ][ ] scores; //定义二维数组
scores=new int[5][50]; //分配内存空间
//或者
int [ ][ ] scores = new int[5][50];
定义二维数组时,要定义最大维数
int [ ][ ] scores = new int[5][];
书写方式
定义并赋值:
一:int[][] scores=new int[][]{ { 90, 85, 92, 78, 54 }, { 76, 63,80 }, { 87 }};
二:int scores[][] = {{ 90, 85, 92, 78, 54 }, { 76, 63,80 }, { 87 } };