JAVA数据结构之冒泡排序,数组元素反转,二分查找算法的联合使用------JAVA入门基础教程

 //二分查找与冒泡排序与数组元素反转的连用

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 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("没找到");
}

你可能感兴趣的:(JAVA随手写,java,算法,数据结构,eclipse,intellij-idea)