排序算法----选择排序

  1. 算法描述:

首先,找到数组中最小的那个元素;其次,将它和数组的第一个元素交换位置;接着,在剩下的元素中找最小的元素,将它与数组中第二个元素交换。如此反复,直到遍历完整个数组。因为不断的在选择剩下元素的最小值,所以叫选择排序

  1. 代码实现:
public class SelectSort 
{
	public static void sort(int[] array)//实现排序的方法
	{
		int temp;
		for(int i=0;i<array.length;i++)//从第一个元素开始遍历到最后一个元素
		{
			for(int j=i+1;j<array.length;j++)//第i个元素与i+1~n的每一个元素比较选出最小值
			{
				if(array[j]<array[i])
				{
					temp=array[j];
					array[j]=array[i];
					array[i]=temp;
				}
			}
		}
	}
	public static void show(int[] array) //排序之后输出结果
	{
		for(int i=0;i<array.length;i++)
		{
			System.out.print(array[i]+"  ");
		}
	}
	public static boolean isSorted(int[] array)//判断排序是否正确
	{
		for(int i=1;i<array.length;i++)
		{
			if(array[i]<array[i-1])
			{
				System.out.println("false");
				return false;//在排序有错时跳出循环
			}
		}
		System.out.println("排序结果正确,输出结果为:");
		return true;
	}
	public static void main(String[] args)
	{
		int[] array={5,13,3,7,4,16,18,11,2,3,9};
		sort(array);
		isSorted(array);
		show(array);
	}
}
  1. 排序算法的特点:
  • 运行时间与输入无关
  • 数据移动是最少的
  • 对于长度为N的数组,大约需要N*N/2次比较和N次交换
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值