import
java.util.Arrays;
/**
* 排序算法
*
*/
public
class
SortDemo {
public
static
void
main(String[] args) {
int
[] ary = {
3
,
1
,
4
,
9
,
2
,
5
,
6
};
selectionSort(ary);
System.out.println(Arrays.toString(ary));
bubbleSort(ary);
System.out.println(Arrays.toString(ary));
insertionSort(ary);
System.out.println(Arrays.toString(ary));
}
/** 插入式排序 */
public
static
void
insertionSort(
int
[] ary){
int
i,j,k;
for
(i=
1
; i<ary.length; i++){
k = ary[i];
//取出
//查找位置
for
(j=i-
1
; j>=
0
&& k<ary[j]; j--){
ary[j+
1
]=ary[j];
//向后移动元素
}
ary[j+
1
]=k;
//插入
}
}
/** 冒泡排序 */
public
static
void
bubbleSort(
int
[] ary){
for
(
int
i=
0
; i<ary.length-
1
; i++){
for
(
int
j=
0
; j<ary.length-i-
1
; j++){
if
(ary[j]>ary[j+
1
]){
int
t=ary[j];ary[j]=ary[j+
1
];ary[j+
1
]=t;
}
}
}
}
/** 选择排序: 每轮选择一个最小的放到前面 */
public
static
void
selectionSort(
int
[] ary){
for
(
int
i=
0
; i<ary.length-
1
; i++){
for
(
int
j=i+
1
; j<ary.length; j++){
if
(ary[i]>ary[j]){
int
t=ary[i];ary[i]=ary[j];ary[j]=t;
}
}
}
}
}