记录一下基础的排序和查找:
public class java_test {
public static void main(String[] args)
{
//从键盘输入10个整数存入数组arry
int[] array=new int[10];
System.out.println("请输入十个整数");
for(int i=0;i<array.length;i++)
{
Scanner input=new Scanner(System.in);
array[i]=input.nextInt();
}
maopao(array);
System.out.println("当前查找的数在数组位置为:"+search(array,想要查找的num));
}
//使用冒泡排序对当前数组进行从小到大的排序
//相邻的两个数进行对比,交换,直到最小或最大的数冒在上面, 排序结束
public static void maopao(int[] array)
{
int i,j;
for(i=0;i<array.length-1;i++)
{
for(j=0;j<array.length-1-i;j++)
{
if(array[j]>array[j+1])
{
int temp=0;
temp=array[j];
array[j]=array[j+1];
array[j+1]=temp;
}
}
}
System.out.println("排序后数组为:"+Arrays.toString(array));
}
//使用二分法查找当前的num在数组里的位置
public static int search(int[] array,int num)
{
int low,high,mid;
low=0;
high=array.length-1;
//循环查找当前的范围
while(low<=high)
{
//mid取当前数组的中间位置
mid=(low+high)/2;
//当查找的num小于mid的数时,就缩小查找的范围,把范围确认在(low,mid-1);
if(num<array[mid])
{
high=mid-1;
}else
//当查找的num小于mid的数时,就缩小查找的范围,把范围确认在(mid+1,high);
if(num>array[mid])
{
low=mid+1;
}else
//当查找的num等于mid的数时,直接返回 mid的位置;
if(num==array[mid])
{
return mid;
}
}
//若查找不成功,返回-1
return -1;
}
}