Skip to content

Commit f74a14c

Browse files
插入排序(插入位置,从头至尾搜索)
1 parent e9a0aa3 commit f74a14c

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
package sorts;
2+
3+
import java.util.Arrays;
4+
5+
/**
6+
* 插入排序(插入位置,从头至尾搜索)
7+
* @Author: ooooor
8+
*/
9+
public class InsertionSortAdd {
10+
11+
public static void main(String[] args) {
12+
int[] data = new int[]{4, 6, 5, 3, 7, 1, 2};
13+
fromStartToEnd(Arrays.copyOf(data, data.length));
14+
System.out.println(Arrays.toString(data));
15+
}
16+
17+
/**
18+
* 查询插入位置时, 从头至尾搜索
19+
* @param data
20+
*/
21+
private static void fromStartToEnd(int[] data) {
22+
for (int i=1; i < data.length; i++) {
23+
int value = data[i];
24+
25+
int[] tmp = new int[2];
26+
int change = i;
27+
for (int j=0; j < i; j++) {
28+
if(value >= data[j]) {
29+
continue;
30+
}
31+
32+
int index = j%2;
33+
if (change == i) {
34+
tmp[Math.abs(index-1)] = data[j];
35+
change = j;
36+
}
37+
tmp[index] = data[j+1];
38+
if (0 == index) {
39+
data[j+1] = tmp[index+1];
40+
} else {
41+
data[j+1] = tmp[index-1];
42+
}
43+
}
44+
data[change] = value;
45+
}
46+
}
47+
48+
}

0 commit comments

Comments
 (0)