一、插入排序算法实现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实现的各种排序算法(插入排序、选择排序算法、冒泡排序算法),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对服务器之家网站的支持!