数组的排序,加入数组中相邻元素的置换

/*
按大小排列数组中元素的顺序{2,23,5,6,9,1}
*/
//从小到大排列
//内循环结束一次,最值出现在头角标位上
//选择排序
class ArrayTest2
{
	public static void selectsort(int[] arr)
	{
		for(int x=0;x<arr.length-1;x++)
		{
			for(int y=x+1;y<arr.length;y++)
			{
				if(arr[y]<arr[x])
				{
					/*
					int temp=arr[x];
					arr[x]=arr[y];
					arr[y]=temp;
					*/
					swap(arr,x,y);//换位置
				}
			}
		}
	}
	//打印数组
	public static void printArray(int[] arr)
	{
		System.out.print("[");
		for(int x=0;x<arr.length;x++)
		{
			if(x!=arr.length-1)
				System.out.print(arr[x]+",");
			else
				System.out.println(arr[x]+"]");
		}
	}
	
	public static void main(String[] args)
	{
		int[] arr={2,23,5,6,9,1};
		//printArray(arr);
		//selectsort(arr);//选择排序
		//Arrays.sort(arr);//java中已经定义好的一种排序方式,开发中对数组排序要使用该句代码
		bubblesort(arr);
		printArray(arr);
	}
	
	
	//冒泡排序:相邻的两个元素相互比较,如果符合条件换位
	//第一圈,最值出现在最后位
	
	public static void bubblesort(int[] arr)
	{
		for(int x=0;x<arr.length-1;x++)
		{
			for(int y=0;y<arr.length-x-1;y++)//-x让每一次比较的元素减少。-1避免角标越界
			{
				if(arr[y]>arr[y+1])
				{
					/*
					int temp=arr[y];
					arr[y]=arr[y+1];
					arr[y+1]=temp;
					*/
					swap(arr,y,y+1);
				}
			}
		}
	}
	
	/*
	发现无论什么排序都需要对满足条件的元素进行未知置换
	所以可以把这部分相同的代码提取出来,单独封装成一个函数
	*/
	public static void swap(int[] arr,int a,int b)
	{
		int temp = arr[a];
		arr[a] = arr[b];
		arr[b] = temp;
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值