public class BubbleOrde {
public static void main(String[] args) {
int[] arr = { 32, 15, 45, 36, 89, 20 };
// 排序前
printArray(arr);
System.out.println("---------");
System.out.println("选择排序");
// 选择排序
selectSort(arr);
printArray(arr);
System.out.println("---------");
System.out.println("冒泡排序");
// 冒泡排序
bubbleSort(arr);
printArray(arr);
}
/**
* 数组排序--选择排序法
*
* @param arr
* 查找数组
*/
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]) {
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
}
}
/**
* 选择的排序方法
*
* @param arr
* 查找数组
*/
/**
* 冒泡排序--相邻的两个元素比较,小的往前靠,大的数往后靠
*
* @param arr
*/
public static void bubbleSort(int[] arr) {
// 外环控制比较的次数
for (int i = 0; i < arr.length - 1; i++) {
// 内环控制比较
for (int j = 0; j < arr.length - 1 - i; j++) {// -i:让每次比较的元素减少,-1
// 避免数组越界
// 第一个元素第j+1个元素比较,以此逐次减少
if (arr[j] > arr[j + 1]) {
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
}
}
/**
* 打印输出数组元素的方法
*
* @param arr
*/
public static void printArray(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] + "]");
}
}
}
}
|
|