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

来源:互联网 发布:淘宝店铺怎么上传宝贝 编辑:程序博客网 时间:2024/06/17 12:42

数组的学习:

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<x[m]){high=m-1;//把中间的下标左边的全部抛弃,取得中间下标的左边的数组//得到的左边的数组最后一个数下标的位置}}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;z<a.length;z++){a[z] = sr.nextInt();}int tmp =0;int max=0;for(int z=0;z<a.length-1;z++){        //多少轮for(int j=0;j<a.length-1-z;j++){//每轮的次数if(a[j]>a[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<a.length;y++){System.out.println(a[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<a.length;i++){System.out.print(a[i]+" ");}Arrays.sort(a);//Arrays.sort()排序方法System.out.println();for(int k = 0;k<a.length;k++){System.out.print(a[k]+" ");}}




0 0
原创粉丝点击