黑马程序员技术交流社区
标题:
求解:获取一个数组的中,指定元素的角标。但是结果老是为3,不懂
[打印本页]
作者:
潜伏
时间:
2013-11-23 22:10
标题:
求解:获取一个数组的中,指定元素的角标。但是结果老是为3,不懂
import java.util.*;
class Halfsearch
{
public static void main(String[] args)
{
char[] arr={'a','b','s','d','e','q','m'};
sop(arr);
System.out.println("");
//排序
for(int x=0;x<arr.length;x++)
{
for(int y=0;y<arr.length-1-x;y++)
{
int num=new Character(arr[y]).compareTo(new Character(arr[y+1]));
if(num>0)
swap(arr,y,y+1);
}
}
sop(arr);
System.out.println(getmyIndex(arr,'l'));
}
//位置转换
public static void swap(char[] arr,int s1,int s2)
{
char num=arr[s1];
arr[s1]=arr[s2];
arr[s2]=num;
}
// 打印方法
public static void sop(char[] arr)
{
for(int x=0;x<arr.length;x++)
{
System.out.print(arr[x]+" ");
}
}
// 获取角标方法
public static int getmyIndex(char[] arr,char key)
{
int min=0;
int max=arr.length-1;
while(min<max)
{
int mid=(min+max)>>1;
int numb=new Character(arr[mid]).compareTo(new Character(key));
if(numb>0)
{
max=mid;
}
if(numb<0)
{
min=mid;
}
return mid;
}
return -1-min;
}
}
作者:
潜伏
时间:
2013-11-23 22:52
import java.util.*;
class Halfsearch
{
public static void main(String[] args)
{
char[] arr={'a','b','s','d','e','q','m'};
sop(arr);
System.out.println("");
//排序
for(int x=0;x<arr.length;x++)
{
for(int y=0;y<arr.length-1-x;y++)
{
int num=new Character(arr[y]).compareTo(new Character(arr[y+1]));
if(num>0)
swap(arr,y,y+1);
}
}
sop(arr);
System.out.println(getmyIndex(arr,'m'));
}
//位置转换
public static void swap(char[] arr,int s1,int s2)
{
char num=arr[s1];
arr[s1]=arr[s2];
arr[s2]=num;
}
// 打印方法
public static void sop(char[] arr)
{
for(int x=0;x<arr.length;x++)
{
System.out.print(arr[x]+" ");
}
}
// 获取角标方法
public static int getmyIndex(char[] arr,char key)
{
int min=0;
int max=arr.length-1;
while(min<=max)// 此处容易出错哦,如果没有等于号的话,当numb=0的时候,就无法进行else了,直接跳出while循环,最后一个return执行
{
int mid=(min+max)>>1;
int numb=new Character(arr[mid]).compareTo(new Character(key));
//System.out.println(numb);
if(numb>0)
{
max=mid-1;
//System.out.println(max);
}
else if(numb<0)
{
min=mid+1;
//System.out.println(min);
}
else return mid;
}
return -1-min;
}
}
作者:
潜伏
时间:
2013-11-23 22:53
潜伏 发表于 2013-11-23 22:52
import java.util.*;
class Halfsearch
{
自问自答。搞了一夜完了,哎,人气不旺
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2