Java SE笔记: 代码块:排序算法

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
/**
* 冒泡排序arr数组,sequence为true时,为升序排序;sequence为false时,为降序排序
*/
static void bubbleSort(int[] arr,boolean sequence){
for(int i = 0;i < arr.length;i++){
for(int j = 0;j < arr.length - i - 1;j++){
if(sequence && arr[j] > arr[j + 1] ||
!sequence && arr[j] < arr[j + 1]){
int temp = arr[j];
arr[j] = arr[j + 1];
arr[j + 1] = temp;
}
}
System.out.println("第"+(i + 1)+"轮:");
printArray(arr);
}
System.out.println("排序后");
printArray(arr);
}

/**
* 选择排序arr数组,sequence为true时,为升序排序;sequence为false时,为降序排序
*/
static void selectSort(int[] arr,boolean sequence){
for(int i = 0;i <arr.length - 1;i++){
int min = i;
for(int j = i + 1;j <arr.length;j++){
if(sequence && arr[j] < arr[min] ||
!sequence && arr[j] > arr[min]){
min = j;
}
}
if(min != i){
int temp = arr[i];
arr[i] = arr[min];
arr[min] = temp;
}
}
printArray(arr);
}
文章目录