/*
需求:对数组进行排序 选择排序
数组[2,7,4,3,5,9,8]
*/
class SortTest {
//定义一个函数对数组进行排序,运用选择排序法。因为只需要对数组进行排序。所以不需要返回值
public static void selectSort(int[] arr) {
for(int i = 0; i < arr.length - 1; i++) {
for(int j = i + 1; j < arr.length; j++) {
if(arr[i] > arr[j]) {
arraySort(arr, i, j);
}
}
}
}
//对数组中的数据进行交换
private static void arraySort(int[] arr, int i , int j) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
//写一个函数对数组进行排序,运用冒泡排序法
public static void bubbleSort(int[] arr) {
for(int i = 0; i <arr.length; i++) {
for(int j = 0; j < arr.length - i - 1; j++){//-i是让每次比较的元素减少,-1是为了避免数组下标越界
if(arr[j] > arr[j + 1]) {
arraySort_1(arr, j);
}
}
}
}
//写冒泡排序的数组数据交换
public static void arraySort_1(int[] arr, int j) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
//写一个函数打印输出数组
public static void show(int[] arr) {
System.out.print("[");
for(int i = 0; i < arr.length; i++) {
if(i != arr.length - 1) {
System.out.print(arr[i] + ",");
} else {
System.out.println(arr[i] + "]");
}
}
}
//写主函数进行测试
public static void main(String[] args) {
int[] arr = {2,7,4,3,5,9,8};
//排序前先输出一次
show(arr);
//对数组进行排序,选择排序函数
//selectSort(arr);
//对数组进行排序,冒泡排序函数
bubbleSort(arr);
//输出打印排序后的数组
show(arr);
}
} |