@wangyupu
2020-06-02T08:49:25.000000Z
字数 2474
阅读 66
java基础
掌握冒泡排序算法
使用Arrays类操作数组
理解二维数组的使用
每次比较相邻两数
小的交换到前面
每轮结束后最大的数交换到最后
##用二重循环将5个数字升序排序
5个数字如何存放
数组,数组.length = 5
控制比较多少轮
外层循环,循环变量i
控制每轮比较多少次
内层循环,循环变量j
交换数据
冒泡排序速记口诀(升序)
N个数字来排队
两两相比小靠前
外层循环N-1
内层循环N-1-1
思考
如何使用冒泡排序实现5个数字的降序排列?
使用冒泡排序对n个数字排序,共蚍较几次可得到最终
结果?
使用java.util包提供的工具类
Arrays提供操作数组的方法,如;排序、查询
Arrays类方法,对数组进行升序排列
Arrays.sort(数组名);
方法名称 | 说明 |
---|---|
boolean equlals(arrayl,array2) | 比较array1和array2两个数组是否相等 |
sort(array) | 对数组array的元素进行升序排列 |
String tingraray) | 将一个数组aray转换成一一个字符串 |
void fill(array,val) | 把数组rray所有元素都赋值为val |
copyOf(aray,length) | 把数组array复制成一个长度为length的新数组,返回类型与复制的数组一致 |
int binarySearch(array, val) | 查询元素值val在数组array中的下标(要求数组中元素已经按升序排列) |
三维及以 上的数组很少使用
主要使用二维数组
从语法.上Java支持多维数组
从内存分配原理的角度讲,只有-维数组
<数据类型> [][] 数组名;或者<数据类型>数组名[][ ];
int [ ][ ] scores;//定义二维数组
scores=new int[5][50];//分配内存空间
//或者
int [ ][ ] scores = new int[5][50];
定义二维数组时,要定义最大维数
int [][] scores = new int[5][];
int( s=new int[3][5];
int( s=new int[3][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}};```
import java.util.Scanner;
public class test1 {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
/*int[] a;//声明数组
a = new int[5]; //分配空间
a[0] = 8;
a[1] = 9;
a[2] = 10;
a[3] = 11;
a[4] = 12;
System.out.println("a[0]==="+a[0]);*/
/* double []scores = new double[10];
scores[0] = 11;
scores[1] = 12;
scores[2] = 13;
scores[3] = 14;
scores[4] = 15;*/
//double []scores = new double[]{11,22,33,47,44};
//double []scores = new double[10];
//数组长度为4 for
/*double []scores = {11,22,33,44,66,7,8,7,8,7,1,2,6,4};
//scores.length 获取数组长度
int leng = scores.length;
for(int i =0;i<leng;i++){
System.out.println(scores[i]);
}*/
double []scores = new double[3];
Scanner sc = new Scanner(System.in);
//循环录入
for(int i = 0;i<scores.length;i++){
scores[i] = sc.nextDouble();
}
//循环打印
for(int i = 0;i<scores.length;i++){
System.out.println(scores[i]);
}
}
}
import java.util.Scanner;
public class test4 {
public static void main(String[] args) {
String [][] subusers = new String[2][3];
/* subusers[0][0] = "和开箱";
* String [][] s = {{"","",""},{"","",""}};
System.out.println(subusers[1][2]);
*/
Scanner sc = new Scanner(System.in);
for(int i = 0;i<subusers.length;i++){
System.out.println("***********************");
System.out.println("开始录入第"+(i+1)+"行学生");
for(int j = 0;j<subusers[i].length;j++){
System.out.println("姓名:");
subusers[i][j] = sc.next();
}
}
System.out.println("-----------------------------");
for(int i = 0;i<subusers.length;i++){
System.out.println("第"+(i+1)+"行学生");
for(int j = 0;j<subusers[i].length;j++){
System.out.println(subusers[i][j]);
}
}
}
}