排序算法总结(2)——选择排序

本文详细介绍了选择排序算法的基本原理,包括其实现步骤与过程,并通过具体的Java代码示例展示了如何实现选择排序。此外还讨论了选择排序的时间复杂度,以及与其他排序算法如冒泡排序之间的比较。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

思路:选择数组中的最左边的元素,下标为0,同时标记此元素为最小元素。将第二个元素与此元素比较,若小于最小元素,则它取而代之成为最小元素。后边的元素以同样的道理进行比较和标记,在完全遍历以后,将具有最小标记的元素和第0个元素进行交换。第二此遍历的时候则从第二个位置开始进行比较。


代码如下:


public class SelectSort {
	public long[] a;
	public int nElemt;
	
	public void selectSort(){
		int in,out,min;
		for(out=0;out<nElemt-1;out++){
			min=out;
			for(in=out+1;in<nElemt-1;in++){
				if(a[min]>a[in]){
					min=in;
					swap(out,min);
				}
			}
		}
	}
	
	private void swap(int m,int n){
		long temp=a[m];
		a[m]=a[n];
		a[n]=temp;
		
	}

}


效率;

选择排序和冒泡排序进行了相同的比较次数,运行时间都为O(N2),但是交换次数很小。当元素个数很大时,比较次数是主要的。但是当元素个数很小时,选择排序更快。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值