冒泡排序:在一列数据中把较小的数据逐次向上移动(冒泡)的一种排序技术
冒泡排序的要点:每一轮下来,总会将本轮里面最大(或最小)的数沉下去(或浮上来)
package day02;
/**
* 有一组数据:31,20,17,81,72,13;编写程序,将上述数据升序排列
* @author Fmc
*
*/
public class BubleSort {
public static void main(String[] args) {
int[] arr = {31,20,17,81,72,13};
for(int i = 0; i < arr.length;i++) {//循环每一个数据
for(int j = 0; j < arr.length - i -1;j++) {//此处arr.length - i - 1 减一以防止数组越界
// 与每一个数据进行比较
if(arr[j] > arr[j + 1]) {
int temp = 0;
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
for(int i = 0;i < arr.length;i++) {
System.out.print(arr[i] + "\t");
}
}
}
控制台输出结果
13 17 20 31 72 81
作业
package day02;
import java.util.Scanner;
/**
* 从键盘输出十个学生的成绩,然后将它们降序打印到控制台
* @author Fmc
*
*/
public class BubleSort2 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("请输入要录入的学生数量:");
int num = input.nextInt();
int [] arr = new int[num];
for(int i = 0;i < arr.length;i++) {
System.out.print("请输入第" + (i + 1) + "位学生的成绩:");
arr[i] = input.nextInt();
}
for(int i = 0; i < arr.length;i++) {//循环每一个数据
for(int j = 0; j < arr.length - i -1;j++) {//此处arr.length - i - 1 减一以防止数组越界
// 与每一个数据进行比较
if(arr[j] < arr[j + 1]) {
int temp = 0;
temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
System.out.print("降序打印学生的成绩为:");
for(int i = 0;i < arr.length;i++) {
System.out.print(arr[i] + "\t");
}
}
}
控制台打印
请输入要录入的学生数量:10
请输入第1位学生的成绩:60
请输入第2位学生的成绩:80
请输入第3位学生的成绩:70
请输入第4位学生的成绩:66
请输入第5位学生的成绩:99
请输入第6位学生的成绩:56
请输入第7位学生的成绩:89
请输入第8位学生的成绩:44
请输入第9位学生的成绩:12
请输入第10位学生的成绩:100
降序打印学生的成绩为:100 99 89 80 70 66 60 56 44 12