选择排序原理:
对于给定的一组数据记录,经过一轮比较之后得到最小的记录,然后将该记录与数据元素的第一个元素进行交换;接着对不保括第一个元素之外的其他元素进行第二轮比较,得到最小的元素之后与数据元素的第二个元素进行交换;然后进行第三次…
示例:
原数据元素:{37, 64, 96, 75, 12}
第一次排序之后:12 {64, 96, 75, 37}
第二次排序之后:12 37 {64, 96, 75}
第三次排序之后:12 37 64 {96, 75}
第四次排序之后:12 37 64 75 {96}
第五次排序之后:12 37 64 75 96(有序)
选择排序算法实现:(不稳定算法)
public static void main(String
[] args
) {
int[] arr
= {37, 64, 96, 75, 12};
sort(arr
);
for (int s
: arr
) {
System
.out
.print(s
+"\t");
}
}
public static void sort(int[] a
) {
for (int i
= 0; i
<= a
.length
- 2; i
++) {
int minIndex
= i
;
for (int j
= i
+ 1; j
< a
.length
; j
++) {
if(greater(a
[minIndex
], a
[j
])) {
minIndex
= j
;
}
}
exc(a
, i
, minIndex
);
}
}
public static boolean greater(int v
, int w
) {
return v
> w
;
}
public static void exc(int[] a
, int i
, int j
) {
int temp
;
temp
= a
[i
];
a
[i
] = a
[j
];
a
[j
] = temp
;
}
排序结果: