数组的查询与冒泡排序(二分查询)

数组的学习:

1.数组的查询:如下(注释可能写的有点乱)

package com.qiyu;

public class ArrayTest15_数组的查找 {
	/***
	 * 		2分查找:
	 *				待查找的数组必须有序
	 * @author liu xiaojian
	 */
	public static int add(int[] x,int y){
		int low = 0;				//第一个下标的位置,low是变量 可变的
		int high=x.length-1;			//最后 的下标位置,high是变量 可变的
		int m;					//下标的位置,可变的
		while(low<=high){			//如果第一个下标low小于等于最后一个小标high,就一直循环
			m=(low+high)/2;			//取得数组中间的下标
			if(y==x[m]){			//要查找的元素是否等于数组下标的那个数
				return m;		//返回下标
			}								
			if(y>x[m]){			//要查找的元素是否大于数组下标的那个数
				low=m+1;		//把中间的下标左边的全部抛弃,取得中间下标的右边的数组
							//得到的右边的数组第一个数下标的位置
			}
			if(y	//把中间的下标左边的全部抛弃,取得中间下标的左边的数组
							//得到的左边的数组最后一个数下标的位置
			}
		}
		return -1;
	}
	public static void main(String[] args) {
		int[] a = new int[]{0,1,2,3,4,5,6,7,8,9,13,14,15,16,18,19};
		int b = 13;
		int c = add(a,b);					//调用add()方法,接受方法的返回值
		System.out.println(c);				//打印
		
	}

}

打印结果为: 10


1.数组的冒泡排序:如下例1.例2


例1

public class ArrayTest2_冒泡排序 {
	public static void main(String[] args) {
		Scanner sr = new Scanner(System.in);
		int[] a=new int[10];
		for(int z = 0;za[j+1]){
//					tmp=a[j];
//					a[j]=a[1+j];
//					a[1+j]=tmp;
					
					//不定义另外一个变量进行交换
					a[j] = a[j]+a[j+1];
					a[j+1]=a[j]-a[j+1];
					a[j]=a[j]-a[j+1];
					
				}
				
				
			}
			
		}
		
		for(int y=0;y

例2:(简单减少代码量)

public class ArrayTest2_冒泡排序2 {
	public static void main(String[] args) {
		int[] a = new int[10];
		Scanner sr = new Scanner(System.in);
		for(int i = 0;i<10;i++){
			a[i] =sr.nextInt();
		}
		
		for(int i =0;i




你可能感兴趣的:(java,se)