Java实现选择排序法
萌新第一次发博客,为了提高自己的编程兴趣,接下来会发一系列的博客,根据自己的理解,用Java实现一些比较简单的算法。
选择排序法的原理:
现在有一组未排序的数:{5,7,9,2,1,3,4,0,8,6},需要将它们从小到大排序。
在未排序的序列中,寻找最小元素,与排序好的最小元素调换顺序。
以题目为例,默认初始为未排序序列,遍历整个数组,获取最小值与首位互换,即将0排在最前,5和0位置互换;此时数组分为排好序与未排序两部分。接下来继续上述过程,在剩下未排序的序列中获取最小值与未排序首位互换。不断重复上诉过程直到数组排序。
排序过程:
5 7 9 2 1 3 4 0 8 6
0 7 9 2 1 3 4 5 8 6
0 1 9 2 7 3 4 5 8 6
0 1 2 9 7 3 4 5 8 6
0 1 2 3 7 9 4 5 8 6
0 1 2 3 4 9 7 5 8 6
0 1 2 3 4 5 7 9 8 6
0 1 2 3 4 5 6 9 8 7
0 1 2 3 4 5 6 7 8 9
排序完毕
代码实现:
import java.util.Arrays;
public class Test{
public static void main(String[] args){
int[] a= {5,7,9,2,1,3,4,0,8,6};
select(a,a.length);
}
public static void select(int[] a,int n){
for(int i=0;i<n-1;i++){
int index = i;
for(int j =i+1;j<n;j++){
if(a[j]<a[index]){
index = j;
}
}
int temp = a[index];
a[index] = a[i];
a[i] = temp;
}
}
}
`