相邻的两个数字比较。
外循环控制的是几轮,内循环控制的是几次。
package com.bdqn.demo4;
/***
* 冒泡算法
* @author lenovo
*
*/
public class Demo1 {
public static void main(String[] args) {
int [] num = {119,110,11086,114,120,2,3};
for (int i = 0; i < num.length-1; i++) {
for (int j = 0; j < num.length-1-i; j++) {
//一个空值的变量
int temp = 0;
//比较相邻的两个数
if (num[j]>num[j+1]) {
temp = num[j];
num[j] = num[j+1];
num[j+1] = temp;
}
}
}
for (int i = 0; i < num.length; i++) {
System.out.println(num[i]);
}
}
}
比较交换比较的是下标。
第一个数和之后的每一个数比较
package com.bdqn.demo4;
/***
* 比较交换
* @author lenovo
*
*/
public class Demo2 {
public static void main(String[] args) {
int [] arr3={23,12,48,56,45};
for (int i = 0; i < arr3.length; i++) {
int tem = i;
//将数组中从i开始的最小的元素所在位置的索引取值给tem
for (int j = i; j < arr3.length; j++) {
if (arr3[j]<arr3[tem]) {
tem = j;
}
}
//上面获取了数组中从i开始的最小值的位置索引位tem,利用该索引将第i位上的元素交换
int temp = arr3[i];
arr3[i] = arr3[tem];
arr3[tem] = temp;
System.out.println(arr3[i]);
}
}
}
使用Arrays类的sort()方法对数组进行升序排列。
package com.bdqn.demo4;
import java.util.Arrays;
/***
* Arrays
* @author lenovo
*
*/
public class Demo3 {
public static void main(String[] args) {
int [] arr3={23,12,48,56,45};
Arrays.sort(arr3);
for (int i = 0; i < arr3.length; i++) {
System.out.println(arr3[i]);
}
}
}
package com.bdqn.demo4;
import java.util.Arrays;
/***
* Arrays
* @author lenovo
*
*/
public class Demo3 {
public static void main(String[] args) {
int [] arr3={23,12,48,56,45};
Arrays.sort(arr3);
for (int i = 0; i < arr3.length; i++) {
System.out.println(arr3[i]);
}
//把数组类型转换为字符串类型
String string = Arrays.toString(arr3);
System.out.println(string);
}
}
package com.bdqn.demo4;
/***
* 二维数组
* @author lenovo
*
*/
public class Demo4 {
public static void main(String[] args) {
int [][] i = new int[2][3];
//第一行第一列
i[0][0] = 1;
//第二行第三列
i[2][3] = 3;
System.out.println(i[0].length);
System.out.println(i[1].length);
for (int j = 0; j < i.length; j++) {
for (int j2 = 0; j2 < i[j].length; j2++) {
System.out.println(i[j][j2]);
}
}
}
}
package com.bdqn.demo4;
import java.util.Scanner;
/***
* 班级成绩
* @author lenovo
*
*/
public class Demo5 {
public static void main(String[] args) {
double [][] num = new double [2][3];
Scanner scanner = new Scanner(System.in);
//外层循环是班级
for (int i = 0; i < num.length; i++) {
System.out.println("=====第"+(i+1)+"个班级=====");
double total = 0;
//内层循环是学生
for (int j = 0; j < num[i].length; j++) {
System.out.println("输入第"+(j+1)+"个学生的成绩");
//第几个班级的第几个学生
num[i][j] = scanner.nextDouble();
total+=num[i][j];
}
System.out.println("第"+(i+1)+"个班级的总成绩为:"+total+"平均分为:"+total/3);
}
}
}
package com.bdqn.demo4;
import java.util.Scanner;
/***
* 班级成绩
* @author lenovo
*
*/
public class Demo5 {
public static void main(String[] args) {
double [][] num = new double [2][3];
String strtotal="";
Scanner scanner = new Scanner(System.in);
//外层循环是班级
for (int i = 0; i < num.length; i++) {
System.out.println("=====第"+(i+1)+"个班级=====");
double total = 0;
//内层循环是学生
for (int j = 0; j < num[i].length; j++) {
System.out.println("输入第"+(j+1)+"个学生的成绩");
//第几个班级的第几个学生
num[i][j] = scanner.nextDouble();
total+=num[i][j];
}
strtotal+="第"+(i+1)+"个班级的总成绩为:"+total+"平均分为:"+total/3+"\n";
}
System.out.println(strtotal);
}
}
package com.bdqn.demo4;
/***
* 杨辉三角形
* @author lenovo
*
*/
public class Demo6 {
public static void main(String[] args) {
int [][] num = new int [5][5];
for (int i = 0; i < num.length; i++) {
num[i][0] = 1;
num[i][i] = 1;
if (i >= 2) {
//j<i 三角形算法
for (int j = 1; j < i; j++) {
num[i][j] = num[i-1][j-1]+num[i-1][j];
}
}
}
//输出这个数
for (int i = 0; i < num.length; i++) {
for (int j = 0; j <= i; j++) {
System.out.print(num[i][j]+" ");
}
System.out.println();
}
}
}