Java基本语法二

<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255);">一.函数:</span><span style="font-family: Arial, Helvetica, sans-serif; font-size: 18px; background-color: rgb(255, 255, 255);">函数是类中一段独立的小程序,又称方法,可<span style="color:#ff0000;">不定数参</span>。</span>
       函数重载:Java中允许类中有重名函数,但参数类型或者参数个数不同,与返回值无关。

<span style="font-size:18px;">	public static int add(int... args)
	{
		int addition=0;
		for(int i=0; i<args.length; i++)</span>
<span style="font-size:18px;">			addition=args[i]+addition;
	return addition;
	}

		public static double add(double... args)
	{
		double addition=0;
		for(int i=0; i<args.length; i++)
			addition=args[i]+addition;
	return addition;
	}</span>
ps(.length是取变量长度。二维数组arr[][]的行和列分别是arr.length和arr[0].length)


二.指针(我们说的Java没指针,是指没有指针显式操作,比如c里面的&取指针,但其指针是存在的)


三.数组

定义有二种方式:int[ ] arr=new int[ ];

     int[ ] arr={1,2,3,4,5,6}定义加初始化 

     二维数组;int [][] arr=new int[4] [];(可不指定长度每行不等长)


四.小应用(排序和查找)

排序先讲二种最普通的

1.选择排序(以升序为例,先选最小的放在第一个位置,第二小放在第二个位置....)

<span style="font-size:14px;">public static int[] selectSort(int[] arr)
	{
		int temp;
	for(int i=0; i<arr.length; i++)
		{
		for(int j=i;j<arr.length;j++)
			{
			if(arr[i]>arr[j])
				{
					temp=arr[i]; 
					arr[i]=arr[j];
					arr[j]=temp;
				}
			}
		}
		return arr;
	}</span>

2.冒泡排序(每一次两两比较,以升序为例,两两比较大的放后面,一轮下来最大值在最后)

public static int[] bubbleSort(int[] arr)
	{
		int temp;
	for(int i=0; i<arr.length; i++)
		{
		for(int j=0;j<arr.length-i-1;j++)
			{
			if(arr[j]>arr[j+1])
				{
					temp=arr[j]; 
					arr[j]=arr[j+1];
					arr[j+1]=temp;
				}
			}
		}
		return arr;
	}

3.对半查找(以排好序的,考虑有多个相同的情况)

	<span style="font-size:18px;">public static int[] halfFind(int[] arr, int x)
				{
					int boundMin,boundMax,index;
					boundMin=0;
					boundMax=arr.length-1;
					index=(boundMin+boundMax)/2;
					int err[]={-1};

				while(boundMax>boundMin)
					{
					if((x>arr[boundMax])||(x<arr[boundMin]))
							index=-1;
					if(arr[index]>x)
						{
							//index+1或-1缩小范围
							boundMax=index-1;
							index=(boundMin+boundMax)/2;
						}

					if(arr[index]<x)
						{
							boundMin=index+1;
							index=(boundMin+boundMax)/2;
						}


					if(arr[index]==x)
						{
							int i=0;</span>
<span style="font-size:18px;"><span style="white-space:pre">							</span>while(arr[index-1]==x)
							{
								index=index-1;
							}
							while(arr[index]==x)
							{
							i=i+1;
							index=index+1;
							}

							int arrIndex[]=new int[i];
							for(int j=0; j<i;j++)
							arrIndex[j]=index-i+j;	
							return arrIndex;
<span style="white-space:pre">							</span>//针对重复的
							}							
						}
		return err;
				}</span>

4.数组的转置

	public static int[][] transp(int[][] arr)
	{
		int row=arr.length;
		int col=arr[0].length;
		int[][] rearr=new int[col][row];
	for(int i=0;i<col;i++)
		{
		for(int j=0;j<row;j++)
			rearr[i][j]=arr[j][i];
		}
		return rearr;
	}

	public static void outarr(int[][] arr)
	{
		int row=arr.length;
		int col=arr[0].length;
	for(int i=0;i<row;i++)
		{
		for(int j=0;j<col;j++)
			{
			System.out.print(arr[i][j]+" ");
			}
			System.out.println();
		}
		System.out.println();

	}


 


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值