黑马程序员——嵌套循环(2)

---------------------- android培训java培训、期待与您交流! ----------------------


嵌套循环在编程中使用频率很高,是初学者必须掌握的语言结构和思想。

本章将继上文后继续通过编写给类典型排序代码,以进一步掌握嵌套循环。

学习目的:掌握选择排序、冒泡排序和折半排序

学习内容:分别编写以上三个类型的排序方式,并打印出结果。


1.选择排序代码:

//选择排序:每轮循环后最值出现在头角标,即左边。
	//循环体类似于斜边在左下尖朝下的直角三角形
	public static void ChooseSort(int[] arr)
	{
	for (int x=0; x<arr.length-1; x++ )
		{
			for (int y=x+1; y<arr.length; y++)
			{
				if(arr[x]>arr[y])
					swap(arr,x,y);
			}
		}
	}


2.冒泡排序代码:

//冒泡排序:每轮循环后最值都会出现在尾角标,即右边。
	//循环体类似于斜边在右上的尖朝上的直角三角形
	public static void Bubble(int[] arr)
	{
		for (int x=0; x<arr.length-1; x++ )
		{
			for (int y=1; y<arr.length-x-1; y++)
			{
				if(arr[y+1]>arr[y])
					swap(arr,x,y);
			}
		}
	}



3.折半查询代码:

	//折半查询,每次都取对半进行比较,从折半的两端开始比较查询,思想类似于微积分
	public static int halfSearch(int[] arr,int key)	//要返回角标值,所以是int
	{
		int min=0,max=arr.length-1,mid;
		while(min<=max)
		{
			mid=(min+max)>>1;			//用位运算符进行折半操作
			if(key<arr[mid])			//若给定值小于中间值,那么查询左半侧
				max=mid-1;
			else if(key>arr[mid])		//若给定值大于中间值,那么查询右半侧
				min=mid+1;
				else
					return mid;

		}
		return min;
	}


4.两个值对挑位置代码:

//两个值变换位置
	public static void swap(int[] arr,int a,int b)
	{	int temp=arr[a];
			arr[a]=arr[b];
			arr[b]=temp;
	}

5.打印数组代码:

	//打印数组,格式为:{element1,  element2,...}
	public static void print(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]+"}");
		}
	}




---------------------- android培训java培训、期待与您交流! ----------------------

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值