简单选择排序:通过n-i次关键字间的比较,从n-i+1个记录中选出关键字最小的记录,并和第i个记录交换。
这个原理较为简单,就不细说啦,直接上代码:
import java.util.Arrays;
public class Simplechoose {
public static int[] Choose(int a[]) {
int len=a.length;//数组长度
int min;//将当前下标定义为值最小下标
for(int i=0;i<len;i++) { //从首元素开始,将其看为对比点
min=i;
for(int j=i;j<len;j++) { //循环之后的数据
if(a[min]>a[j]) { /*如果有小于当前最小值得关键字*/
min=j; /*将次关键字的下标赋值给min*/
}
}
if(i!=min) { //若min不等于对比点i,则说明最小值不是i,而是min,交换即可
swap(i,min,a);
}
}
return a;
}
public static void swap(int i,int j,int a[]) {
int temp=a[i];
a[i]=a[j];
a[j]=temp;
}
public static void main(String args[]) {
int arr[]= {3,2,5,7,1,4};
System.out.println(Arrays.toString(Choose(arr)));
}
}
简单选择排序总的时间复杂度为O(n^2)