A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Zengpenh 中级黑马   /  2018-1-8 20:29  /  1627 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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);
*
* */
}



       
       


0 个回复

您需要登录后才可以回帖 登录 | 加入黑马