冒泡排序
1.数列必须是顺序排列好的
2.在判断首末位元素的时候要考虑到是否相等的情况(数组如果只有一个元素)
import java.util.Arrays;
import java.util.Scanner;
public class MyTest {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int[] list = {56,64,84,13,4,68,12}; //当然这个地方可以写成由用户从控制台输入,但图方便就采用这种直接给出的方式了
System.out.println("Enter the number you want to find ");
int n= input.nextInt();
Arrays.sort(list); //把数组的元素从小到大排列好
System.out.println(Arrays.toString(list)); //显示排列好之后的数列
System.out.println("The flag is " + binarySearch(list,n));
}
public static int binarySearch(int list[],int i) {
int low=0,high = list.length-1;
while(high >= low) { //在调试的时候花时间最多的是找这个等号,如果不判断相等的情况,查找首位和末位的元素会出现不正确
int mid = (high+low)/2;
if(i<list[mid]) {
high = mid -1;
}
else if(i == list[mid]){
return mid;
}
else
low = mid + 1;
}
return -1 -low; //个人觉得返回-1也是可以的
}
}
啊啊啊啊,因为近几日为情所困今日犹然,所以学习的进度被落下了很多。明天一定要复现插入排序和选择排序。数组就到这里先告一段落。希望明天能复习到对象和类,时间太久都已经快忘光了。就像从头开始学一样。啊啊啊。