下面這個程序是先定義一個整型數組,然后將其中的元素反序賦值,再用冒泡排序進行排序以后用二分查找來查找其中是否有某個數,返回值為-1時表示這個數可能小于這個數組的最小值或大小這個數組的最大值,-2表示這個數比這個數組的最小值大,最大值小,但是數組中不包含這個數,代碼如下:
package com.jll.sort;
public class ErFenSort {
static int[]
unsorted;
public static void main(String[] args)
{
ErFenSort efs = new
ErFenSort(10);
buddleSort();
for(int
i=0;i
System.out.print(unsorted[i]+" ");
}
int index = search(2);
System.out.println(index);
}
public ErFenSort(int n)
{
unsorted = new
int[n];
for(int
i=0;i
unsorted[n-i-1] = i;
}
}
public
static int search(int index){
int
head=1;
int
tail=unsorted.length-1;
int middle
= 0;
int turn =
0;
while(head<=tail){
middle =
(tail+head)/2;
if(index==unsorted[middle]){
turn =
middle+1;
break;
}else if(index < unsorted[middle]&&index >=
unsorted[head]){
tail =
middle-1;
continue;
}else
if(index>unsorted[middle]&&index<=unsorted[tail]){
head =
middle+1;
continue;
}else
if(index
tail){turn =
-1;
break;
}else{
turn =
-2;
break;
}
}
return
turn;
}
public static void buddleSort(){
for(int
i=0;i
for(int
j=0;j
if(unsorted[j]>unsorted[j+1]){
int temp =
unsorted[j];
unsorted[j]=unsorted[j+1];
unsorted[j+1]=temp;
}
}
}
}
}
輸出結果為:
原文:http://www.cnblogs.com/lilyjia/p/3747863.html