05java查找

折半查找

class arr{
	public static void main(String[] args)
	{
		System.out.println("hello world");
	}
}
class arr{
	public static void main(String[] args)
	{
		int[] arr={3,1,5,4,2,9};
		int index=getindex(arr,2);
		System.out.println(index);
	}
	//定义功能 获取key 第一次出现在数组中的位置 如果返回-1;代表key不存在
	public static int getindex(int[] arr,int key)
	{
		for(int x=0;x<arr.length;x++)
		{
			if(arr[x]==key)
				return x;
		}
		return -1;
	}


	//折半查找 提高效率 保证数组是**有**序数组
	//首先找出中间位置 保留整数部分
	public static int getindex2(int[] arr,int key)
	{
		int min,max,mid;
		mid=(arr.length-1)/2;
		min=0;
		max=arr.length-1;

		while(arr[mid]!=key)
		{
			if(arr[mid]>key)
			   min=mid+1;
			 else if(key>arr[mid])
			   max=mid-1;
			 if(min>max) return -1;
			 mid=(max+mid)/2;
		}
		
	}
	
}

折半的第二种方式

在这里插入图片描述

进制转换

class arr{
	//十进制转换为二进制
	public static void tobin(int num)
	{
		StringBuffer sb=new StringBuffer();
		while(num>0)
		{
			System.out.println(num%2);
			num=num/2; 
		}
		//反转
		System.out.println(sb.reverse());
	}
	//十进制转换为十六进制
	public static void tohex(int num)
	{
		int n1=num & 15;
		if(n1-10+'a'>9)
		{
		} 
	}
	public static void main(String[] args)
	{
		
		int num=10;
		tobin(num);
}
原创文章 159 获赞 4 访问量 1万+

猜你喜欢

转载自blog.csdn.net/weixin_44769592/article/details/100995460