排序之简单选择排序(java实现)

简单选择排序:通过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)

猜你喜欢

转载自blog.csdn.net/bai_and_hao_1314/article/details/80545810