一、插入排序算法实现java版本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
|
public static int [] insert_sort( int [] a) { for ( int i = 0 ; i < a.length; i++) { for ( int j=i+ 1 ;j> 0 &&j<a.length;j--) { if (a[j]<a[j- 1 ]) { int tmp = a[j]; //这样定义初始化逻辑上是可以的,j变量,每次tmp的值变化的 a[j] = a[j- 1 ]; a[j- 1 ] = tmp; } } } return a; //这里设计成不返回也行, 原数组也已经修改,已排好序 } |
二、选择排序算法实现java版本
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
|
public static int [] select_sort( int [] a) { for ( int i = 0 ; i < a.length; i++) { int min_pos = i; for ( int j=i+ 1 ;j<a.length;j++) { if (a[j] < a[min_pos]) { min_pos = j; } } int tmp = a[i]; // swap 操作 a[i] = a[min_pos]; a[min_pos] = tmp; } return a; } |
三、冒泡排序算法java实现
普通冒泡
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
|
public static int [] bubble_sort( int [] a) { for ( int i = 0 ; i < a.length; i++) { //每一趟过后a[i]是第i小 for ( int j = a.length- 1 ;j>i;j--) //后续有j-1操作 注意j>i { if (a[j] < a[j- 1 ]) { int tmp = a[j]; // swap 操作 a[j] = a[j- 1 ]; a[j- 1 ] = tmp; } } } return a; } |
改进冒泡排序,提前终结
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
|
public static int [] bubble_sort_flag( int [] a) { boolean isChange = true ; for ( int i = 0 ; i < a.length && isChange; i++) { isChange = false ; for ( int j = a.length- 1 ;j>i;j--) //后续有j-1操作 注意j>i { if (a[j] < a[j- 1 ]) { int tmp = a[j]; // swap 操作 a[j] = a[j- 1 ]; a[j- 1 ] = tmp; isChange = true ; } } } return a; } |
以上所述是小编给大家介绍的Java实现的各种排序算法(插入排序、选择排序算法、冒泡排序算法),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!