排序之简单选择排序(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)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值