java-利用折半查找算法将一个数插入有序数组中适当位置
来源:互联网 发布:拖欠淘宝贷款犯罪吗 编辑:程序博客网 时间:2024/05/22 15:03
class HalfSearchTest //定义折半查找测试类
{
public static void main(String[] args) //定义测试方法main
{
int[] a={1,3,5,6,7,8,9}; //定义测试方法数组
System.out.println(HalfSearch_1(a,2)); //测试折半查找方法1
System.out.println(HalfSearch_2(a,8)); //测试折半查找方法2
}
public static int HalfSearch_1(int[] a,int key) //定义折半查找方法1(通过中间下标值不等于key来控制循环语句)
{
int min=0,max=a.length-1,mid=(0+a.length-1)/2; //定义最小下标min,最大下标max,和中间下标mid
while(a[mid]!=key) //通过中间下标值不等于key来控制循环语句
{
if(a[mid] //若中间下标值的元素值小于key,则应当在中间下标值的右边找key
min=mid+1;
else
max=mid-1; //若中间下标值的元素值大于key,则应当在中间下标值的左边找key
if(max
return min;
mid=(min+max)/2; //每次改变min或者max值之后,mid的值也跟着改变
}
return mid; //返回元素在数组中的应当插入的为止,即min的为止(可以自己举例验证)
}
public static int HalfSearch_2(int[] a,int key) //定义折半查找方法2(通过最小下标min<最大下标max来控制循环语句)
{
int min=0,max=a.length-1,mid=(0+a.length-1)/2; //定义最小下标min,最大下标max,和中间下标mid
while(min<=max) //通过最小下标min<最大下标max来控制循环语句
{
if(a[mid]
min=mid+1;
else if(a[mid]>key) //若中间下标值的元素值大于key,则应当在中间下标值的左边找key
max=mid-1;
else
return mid; //否则,查找成功,返回所查找元素的下标值
mid=(min+max)/2; //每次改变min或者max值之后,mid的值也跟着改变
}
return min; //返回元素在数组中的应当插入的为止,即min的为止(可以自己举例验证)
}
}
class {
public static void main(String[] args) //定义测试方法main
{
int[] a={1,3,5,6,7,8,9}; //定义测试方法数组
System.out.println(HalfSearch_1(a,2)); //测试折半查找方法1
System.out.println(HalfSearch_2(a,8)); //测试折半查找方法2
}
public static int HalfSearch_1(int[] a,int key) //定义折半查找方法1(通过中间下标值不等于key来控制循环语句)
{
int min=0,max=a.length-1,mid=(0+a.length-1)/2; //定义最小下标min,最大下标max,和中间下标mid
while(a[mid]!=key) //通过中间下标值不等于key来控制循环语句
{
if(a[mid] //若中间下标值的元素值小于key,则应当在中间下标值的右边找key
min=mid+1;
else
max=mid-1; //若中间下标值的元素值大于key,则应当在中间下标值的左边找key
if(max
return min;
mid=(min+max)/2; //每次改变min或者max值之后,mid的值也跟着改变
}
return mid; //返回元素在数组中的应当插入的为止,即min的为止(可以自己举例验证)
}
public static int HalfSearch_2(int[] a,int key) //定义折半查找方法2(通过最小下标min<最大下标max来控制循环语句)
{
int min=0,max=a.length-1,mid=(0+a.length-1)/2; //定义最小下标min,最大下标max,和中间下标mid
while(min<=max) //通过最小下标min<最大下标max来控制循环语句
{
if(a[mid]
min=mid+1;
else if(a[mid]>key) //若中间下标值的元素值大于key,则应当在中间下标值的左边找key
max=mid-1;
else
return mid; //否则,查找成功,返回所查找元素的下标值
mid=(min+max)/2; //每次改变min或者max值之后,mid的值也跟着改变
}
return min; //返回元素在数组中的应当插入的为止,即min的为止(可以自己举例验证)
}
}
0 0
- java-利用折半查找算法将一个数插入有序数组中适当位置
- 折半查找,把一个数放到一个有序数组的对应位置
- 折半查找 在数组中插入一个数返回index
- java 数组中添加一个数,放入到数组的适当位置
- 折半查找确定插入数组中元素的位置
- 输入一个数插入有序数组中
- 输入一个数插入有序数组中
- 输入一个数插入有序数组中
- 输入一个数插入有序数组中
- 输入一个数插入有序数组中
- 输入一个数插入有序数组中
- 输入一个数插入有序数组中
- 设顺序表a中的数据元素递增有序,试设计一个算法,将x插入到顺序表的适当位置,以保持该表的有序性。
- 插入排序和将一个数插入有序数组
- 黑马程序员-IOS学习笔记 折半查找 在数组中插入一个数返回index
- 有n个有序的整数放在一维数组中,输入一个数,将该数放入数组合适的位置,使插入该数后,数组中的元素仍然有序;
- 有序数折半查找
- 有序数组中插入位置
- navigation pop到指定页
- C++ Primer学习之(3)——标准库类型
- java-折半查找算法(两种程序形式)
- 数据结构学习笔记3
- c++函数里的传值 传址
- java-利用折半查找算法将一个数插入有序数组中适当位置
- php程序员学C/C++之学习系列-【C基础】
- 【Flume NG用户指南】(2)配置
- 禁止超链接跳转--经测试,可用
- Excel中条件格式
- 如何学习mysql数据库—mysql入门基础
- Ubuntu 12.04中文输入法的安装
- POJ 3461 Oulipo (KMP算法)
- 非802.11r的Fast Roaming