java语言二分法代码 二分法排序java代码
二分法查找的java代码
public class ef {
创新互联专注于铁西网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供铁西营销型网站建设,铁西网站制作、铁西网页设计、铁西网站官网定制、重庆小程序开发服务,打造铁西网络公司原创品牌,更为您提供铁西网站排名全网营销落地服务。
public static void main(String[] args) {
int[] a = { 4, 8, 12, 44, 69, 71, 98, 132 ,133};
int m = ef.ef(a, 0, a.length, 71);
if(m!=-1){
System.out.println(a[m]+"====="+m);
}
System.out.println("不存在该数字");
}
public static int ef(int[] a, int from, int to, int b) {
int midel = (from + to) / 2;
if ((to - from) = 1 b != a[midel]) {
return -1;
}
if (b a[midel]) {
return ef(a, midel, to, b);
} else if (b a[midel]) {
return ef(a, from, midel, b);
} else {
return midel;
}
}
}
写一个java程序,用二分法把6插入到数组[1,2,5,7,8,9,13]
public static void insertSort(int[] data, int num) {
int left, right;
int middle, j;
// 准备
left = 0;
right = data.length - 2;
// 二分法查找插入位置
while (right = left) {
// 指向已排序好的中间位置
middle = (left + right) / 2;
if (num data[middle])
right = middle - 1;// 插入的元素在右区间
else
left = middle + 1; // 插入的元素在左区间
}
// 后移排序码大于R[i]的记录
for (j = data.length - 2; j = left; j--) {
data[j + 1] = data[j];
}
// 插入
data[left] = num;
}
public static void main(String[] args) {
int[] data1 = { 1, 2, 5, 7, 8, 9, 13, 0 };// 预留一位给需要排序插入的使用
//insertSort(data1, 0);
insertSort(data1, 6);
//insertSort(data1, 14);
for (int i = 0; i data1.length; i++) {
System.out.println(data1[i]);
}
}
用java编写程序,采用二分法查找一个数
public class Lookup {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
/**
* 二分法查找
*/
int a[]={23,45,98,100,110,120,140};
int search=120;//记录要查找的元素
int lower=0;//记录第一个元素
int temp=a.length-1 ;
int index=-1;
while(lower=temp){
index = (lower+temp)/2;//记录中间元素,用两边之和除2.
int currentValue=a[index];
if(currentValue==search){//如果得到的数与要查找的数相等则break退出;
break;
}else if(currentValuesearch){//如果得到的数要小于查找的数、就用下标加1;否则减一
lower=index+1;
}else{
temp = index-1;
}
}
if(lower=temp){
System.out.println(search+"在数组中第:"+(index+1)+"位");
}else{
System.out.println("里面没有这个元素");
}
}
}
本文标题:java语言二分法代码 二分法排序java代码
链接地址:http://scyanting.com/article/ddosgoh.html