在Java中,有五种排序方式,我们平时最常用的就是冒泡排序,其他方法与之类似,需要大家了解原理。
我们先来了解一下,什么是冒泡排序?来看一张图解;
我们规定按照从小到大顺序,通过第一个与第二个比较,若是第一个比第二个大,则继续朝下一个元素比较,一直比到,自己大的元素位置,停止比较。则开始第二次排序,这时候注意,要在数组元素数目上面减去一。
来看一段代码实现:
从键盘输入一个包含10个元素的整形数组,然后按照从大到小的顺序排序后的数组,以及按照从小到大排序后的数组。
import java.util.Scanner;
public class Array {
public static void main(String[] args) {
System.out.println("请输入数组元素:");
//录入从键盘输入的数组元素
Scanner scanner = new Scanner(System.in);
int arr[] = new int[10];
for (int i = 0; i < arr.length; i++) {
arr[i] = scanner.nextInt();
}
int tmp;
//从大到小排列
//外层循环控制从第几个数组元素开始
for (int i = 0; i < arr.length-1; i++) {
//内层循环控制袁术比较的次数
for (int j = 0; j <arr.length-1; j++) {
if (arr[j] < arr[j + 1]) {
tmp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = tmp;
}
}
}
for (int i : arr) {
System.out.print(i + " ");
}
//从小到大排列
for (int i=0;i<arr .length-1;i++){
for(int j=0;j<arr.length-i-1;j++){
if (arr[j]>arr[j+1]){
tmp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = tmp;
}
}
}
for (int i :arr) {
System. out. print(i+" ");
}
}
}