
//二分查找与冒泡排序与数组元素反转的连用
int[] arr2 = new int[]{2,4,5,8,12,15,19,26,29,37,49,51,66,89,100};
int[] po = new int[arr2.length];
//复制一个刚好倒叙的数组po
for (int i = arr2.length - 1; i >= 0; i--)
{po[arr2.length - 1 - i] = arr2[i];
}//arr2 = po;
int target = 5;
int head = 0;
int end = arr2.length-1;
boolean flag = false;
while(end >= head)
{int middle = (head + end) / 2;if(target < arr2[middle]){end = middle - 1;}else if(target > arr2[middle]){head = middle + 1;}else//target<middle的值了{System.out.println("找到了,位置是"+(middle+1));flag = true;break;}
}
if(flag == false)
{System.out.println("没找到");
}//冒泡排序
for (int i = 0; i < po.length - 1; i++)
{for (int j = 0; j < po.length - 1 - i; j++){if(po[j] > po[j+1]){int temp = po[j];po[j] = po[j + 1];po[j + 1] = temp;}}
}for (int i = 0; i < po.length; i++)
{System.out.print(po[i]+"\\t");
}//对冒泡排序后的进行二分查找
int target1 = 5;
int head1 = 0;
int end1 = po.length - 1;
while(end1 >= head1)
{int middle1 = (head1 + end1) / 2;if(target1 > po[middle1]){head1 = middle1 + 1;}else if(target1 < po[middle1]){end1 = middle1 - 1;}else{System.out.println("位置是" + (middle1 + 1));break;}
}
if(end1 > head1)
{System.out.println("没找到");
}
铁三角麦克风