目录
1.数组查找操作
定义一个长度为10 的一维字符串数组,在每一个元素存放一个单词;然后运行时从命令行输入一个单词,程序判断数组是否包含有这个单词,包含这个单词就打印出“Yes”,不包含就打印出“No”。
public class _01 {
public static void main(String[] args) {
String[]arry=new String[10];
Scanner input=new Scanner(System.in);
for(int i=0;i<arry.length;i++) {
System.out.println("请输入第"+(i+1)+"个单词:");
arry[i]=input.next();
}
System.out.println("请输入要查询的单词:");
String word=input.next();
if(f(arry,word))
System.out.print("Yes");
else
System.out.print("No");
}
static boolean f(String []arry,String word) {
for(int i=0;i<arry.length;i++) {
if(arry[i].equals(word))
return true;
}
return false;
}
}
2.获取数组最大值和最小值
利用Java的Math类的random()方法,编写函数得到0到n之间的随机数,n是参数。并找出产生50个这样的随机数中最大的、最小的数,并统计其中>=60的有多少个。
public class _02 {
static Scanner input=new Scanner(System.in);
public static void main(String[] args) {
int[] num=new int[50];
System.out.println("请输入0~n中的n:");
int n=input.nextInt();
int []arry=rand(num,n);
System.out.println("最大值"+_max(arry)+","+"最小值"+_min(arry));
System.out.print("其中>=60的个数有"+_count(arry)+"个");
}
static int[] rand(int[] num,int n){//随机生成长度为50,0~n的数组。
for(int i=0;i<num.length;i++) {
num[i]=(int)((n+1)*Math.random());
}
return num;
}
static int _max(int[] num) {//寻找最大值
int max= num[0];
for(int i=1;i<num.length;i++) {
if(num[i]>max)
max=num[i];
}
return max;
}
static int _min(int[] num) {//寻找最小值
int min= num[0];
for(int i=1;i<num.length;i++) {
if(num[i]<min)
min=num[i];
}
return min;
}
static int _count(int[] num) {//该函数判断数组中>=60的有多少个
int count=0;
for(int i=0;i<num.length;i++) {
if(num[i]>=60)
count++;
}
return count;
}
}
3.数组逆序操作
定义长度为10的数组,将数组元素对调,并输出对调前后的结果。
public class _03 {
static Scanner input=new Scanner(System.in);
public static void main(String[] args) {
int[] arry1=new int[10];
for(int i=0;i<arry1.length;i++) {
arry1[i]=input.nextInt();
}
System.out.println("对调前的数组:"+Arrays.toString(arry1));
for(int j=0;j<arry1.length/2;j++) {//只需要循环到length/2即可。
int temp=arry1[arry1.length-1-j];
arry1[arry1.length-1-j]=arry1[j];
arry1[j]=temp;
}
System.out.print("对调后的数组:"+Arrays.toString(arry1));
}
4.合并数组操作
现有如下一个数组: int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5} 要求将以上数组中值为0的项去掉,将不为0的值存入一个新的数组,生成的新数组为: int newArr [] ={1,3,4,5,6,6,5,4,7,6,7,5}
public class _04 {
public static void main(String[] args) {
int oldArr[]={1,3,4,5,0,0,6,6,0,5,4,7,6,7,0,5};
int newArr[]=new int[100];
int count=0;
for(int i=0;i<oldArr.length;i++)
{
if(oldArr[i]!=0) {
newArr[count]=oldArr[i];
count++;
}
}
System.out.println("新的数组:");
for(int i=0;i<count;i++)
System.out.print(newArr[i]+" ");
}
}
5.二分查找
二分法查找操作:使用二分法查找有序数组中元素。找到返回索引,不存在输出-1。
public class _05 {
static Scanner input=new Scanner(System.in);
public static void main(String[] args) {
int[]arry= {3,12,24,36,55,68,75,88};
int n=input.nextInt();
int idex=binary_search(arry,n,0,arry.length);
System.out.print(idex);
}
static int binary_search(int[] arry,int n,int l,int r) {//二分查找
int mid=(r+l)/2;
if(l>=r)
return -1;
else if(arry[mid]>n)
return binary_search(arry,n,l,mid-1);
else if(arry[mid]<n)
return binary_search(arry,n,mid+1,r);
else
return mid;
}
}