package com.itheima.FiestDay3;
import java.lang.reflect.Array;
/*判断该数在数组中是否存在,如果不存在返回-1,如果存在返回对应的角标
* */
import java.util.*;
public class FindTest {
public static void main(String[] args) {
int[] arr1={1,33,4,45,6,9,12,45};
//int[] arr={1,3,4,5,6,9,12,45};//使用二分查找法数组必须是有序数组
//find(arr,22);
//int f=find(arr,1);
//int f=find02(arr1,33);
//System.out.println(f);
Arrays.sort(arr1);
int h=find(arr1, 1);
System.out.println(h);
System.out.println(Arrays.toString(arr1));//打印排序过后的数组
}
//普通查找法
public static int find02(int[] arr1,int key){
for(int a=0;a<arr1.length;a++){
if(arr1[a]==key){
return a;
}
}
return -1;
}
//二分查找法//使用二分查找法数组必须是有序数组
public static int find(int[] arr1,int key){//获取一个int类型的数组和一个int类型需要查找的key
int mid,min,max;//定义三个变量记录记录住最小角标、中间角标和最大角标
min=0;//初始化最小角标值为0
max=arr1.length-1;//初始化最大角标值为arr.length-1
mid=(min+max)/2;//初始化中间角标值为最大角标加上最小角标除以2
while(arr1[mid]!=key){//判断中间角标的元素是否与key不相等,如果相等则不执行while循环体里面的语句。因为while循环语句可以多次判断所以用whie循环语句
if(key>arr1[mid]){//判断key是否大于中间角标的元素
min=mid+1;//最小角标值等于中间角标值加1
}
else if(key<arr1[mid]){//否则如果key小于中间角标值的元素
max=mid-1;//最大角标值等于中间角标值-1
}
if(max<min){//if(max<min)//如果最小角标值大于最大角标值,则不需要折半动作
return -1;// return -1;//直接返回-1
}
mid=(min+max)/2;
}
return mid;//返回中间角标
}
}
package com.itheima.FiestDay3;
public class ForTest {
public static void main(String[] args) {
/*
* 打印一个长为4宽为5的长方形
* ****
* ****
* ****
* ****
* ****
* */
for(int x=0;x<5;x++){
for(int y=0;y<4;y++){
System.out.print('*');
}
System.out.println();
}
/*打印一个图形
* *
* **
* ***
* ****
* *****
* */
for(int a=0;a<5;a++){
for(int b=0;b<=a;b++){
System.out.print('*');
}
System.out.println();
}
/*打印一个图形
* *****
* ****
* ***
* **
* *
*
* */
for(int a=0;a<5;a++){
for(int b=5;b>a;b--){
System.out.print('*');
}
System.out.println();
}
/*打印一个图形
* ***** *
* -**** **
* --*** ***
* ---** ****
* ----* *****
* */
for(int a=1;a<=5;a++){
for(int b=1;b<a;b++){
System.out.print(' ');
}
for(int b=a;b<=5;b++){
System.out.print('*');
}
System.out.println();
}
for(int a=1;a<=5;a++){
for(int b=5;b>a;b--){
System.out.print(' ');
}
for(int c=1;c<=a;c++){
System.out.print('*');
}
System.out.println();
}
/*打印一个图形
* *********
* *******
* *****
* ***
* *
* */
for(int a=1;a<=5;a++){
for(int b=1;b<a;b++){
System.out.print('-');
}
for(int c=a;c<=5;c++){
System.out.print("* ");
}
System.out.println();
}
//打印乘法表
int a=6;
int sum=0;
for(int x=1;x<=a;x++){
for(int y=1;y<=x;y++){
sum=x*y;
System.out.print(y+"*"+x+"="+sum+" \t");
}
System.out.println();
}
//其他流程控制语句
//break:跳出
//continue:继续循环
}
}
package com.itheima.FiestDay3;
import java.util.*;//系统排序简便方法
public class HanShu {
/*函数定义格式
* 修饰符 返回值类型 函数名(函数名首字母小写,后面的单词首字母大写)(参数类型 形式参数1,参数类型 形式参数2.....){
* 执行语句;
* return 返回值;
* }
*
* 下面例子是选择排序
* */
public static void main(String[] args) {
// TODO Auto-generated method stub
int[] arr={21,3,45,22,6,7,98};//定义一个数组
//getMaxPrint(arr);
Arrays.sort(arr);//调用排序语句
printHou(arr);
}
//打印排序后数组
public static void printHou(int arr[]){
System.out.print("[");
for(int x=0;x<arr.length;x++)
{ if(x!=arr.length-1)
System.out.print(arr[x]+",");
else
System.out.print(arr[x]);
}
System.out.println("]");
}
//置换功能
public static void zhiHuan(int a,int b,int[] arr){
int temp=arr[a];
arr[a]=arr[b];
arr[b]=temp;
}
//排序功能
public static void getMaxPrint(int[] arr){
for(int x=0;x<arr.length-1;x++){
for(int y=x+1;y<arr.length;y++){
if(arr[x]>arr[y]){
/*int temp=arr[x];
arr[x]=arr[y];
arr[y]=temp;*/
zhiHuan(x,y,arr);
}
}
}
printHou(arr);
}
}
package com.itheima.FiestDay3;
import javax.xml.bind.annotation.adapters.XmlJavaTypeAdapter.DEFAULT;
public class SwitchTest {
/*switch(表达式){//选择语句
case(取值1)://case事件
执行语句;
break;//跳出
case(取值2):
执行语句;
break;
case(取值3):
执行语句;
break;
.
.
.
default://缺省,默认的意思。其他
执行语句;
break;
}*/
/*
* if语句和switch语句的区别?
* if:
* 1,对具体的值进行判断
* 2,对区间进行判断
* 3,对运算结果是boolean类型的表达式进行判断
* switch:
* 1,对具体的值进行判断
* 2,值的个数通常是固定的
* 对于几个固定的值,建议使用switch语句,效率相对高一点
*
* */
public static void main(String[] args) {
// TODO Auto-generated method stub
int a=4;
switch(a){
case(1):
System.out.println('a');
break;
case(2):
System.out.println('b');
break;
case(3):
System.out.println('c');
break;
default:
System.out.println("不存在");
break;
}
}
/*
* 循环语句
* while语句:条件不满足时不会执行
* while(表达式){
* 执行语句;
* }
* int x=1;
* while(x<3){
* System.out.println("x="+x);
* x++;
* }
*
* do while语句:无论条件是否满足,至少执行一次
* do{
* 执行语句;
* }while(条件表达式);
* int a=1
* do{
* System.out.println("x="+x);
* }while(x<3);
*
* */
}
|
|