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
|
/*
* 交换,array i 和 j位置的元素
* */
protected void swap(int i1, int i2){
swapcount ++;
int tmp = array[i1];
array[i1] = array[i2];
array[i2] = tmp;
}
/*
* 比较两个下标的元素
* 返回值等于0 , 代表array[i1] == array[i2]
* 返回值 < 0, 代表array[i1] < array[i2]
* 返回值 > 0, 代表array[i1] > array[i2]
* */
protected int cmp(int i1, int i2){
cmpcount ++;
return array[i1] - array[i2];
}
protected void sort() {
for (int i = array.length - 1; i > 0; i--) {
int maxIdx = 0;
for (int j = 1; j <= i; j++) {
if (cmp(j, maxIdx) > 0){
maxIdx = j;
}
}
swap(maxIdx, i);
}
}
|