大数据Java基础二

class ArryDemo{
        //调出最大或最小值:
         public static int getMax(int arr[]){
             if(arr==null||arr.length==0){   //判断数组是否为空或数组长度不能为0
                 return -1;
         }
             int max=arr[0];//取数组的第一个值
             for(int i=1;i<arr.length;i++){
                 max=max>arr[i] ? max : arr[i];//三元运算
             }
             return max;
         }
         //冒泡排序法:
         public static void MaoPo(int arr1[]){
            if(arr1==null||arr1.length==0){
                System.out.println("排序时,数组不能为NULL或数组长度不能为0");
            }
            for(int i=arr1.length-1;i>0;i--){//i表示外部循环,
                for(int j=0;j<i;j++){//j表示内部循环(数组里面的下标循环)
                    if(arr1[j]<arr1[j+1]){//符号表示正序倒序切换
                    int temp=arr1[j];  //引用一个第三方,套取(交换)数组下标位置
                        arr1[j]=arr1[j+1];
                        arr1[j+1]=temp;
                    }        
                }
            }
            for(int i:arr1){//增强for循环
                System.out.print(i+" ");
            }
            System.out.println();
         }
         //选择排序法:
         public static void SelectSort(int arr2[]){
             if(arr2==null||arr2.length==0){
                 System.out.println("排序时,数组不能为NULL或数组长度不能为0");
             }
             for(int i=0;i<arr2.length-1;i++){//选择
                 for(int j=i+1;j<arr2.length;j++){
                     if(arr2[i]>arr2[j]){
                         int temp=arr2[i];
                         arr2[i]=arr2[j];
                         arr2[j]=temp;
                     }
                 }
             }
             for(int i:arr2){
                 System.out.print(i+" ");
             }
               
         }
         //进制的转化
 public static String ShowNumber(int i){
       System.out.println( "\n 二进制:"+Integer.toBinaryString(i));//调用了Integer类;
       System.out.println( " 八进制:"+Integer.toOctalString(i));
       System.out.println( " 十六进制:"+Integer.toHexString(i));
             return "\n 二进制:"+Integer.toBinaryString(i)+//返回值
                        "\n 八进制:"+Integer.toOctalString(i)+
                        "\n 十六进制:"+Integer.toHexString(i);
         }
 //折半查找(二分法)
 public static  void HalfFind(int num){
     int arr[]={1,5,8,12,15,19,20,27,33};//定义一个数组
     int max=arr.length-1,min = 0; //定义数组中的最大值,最小值
     while(min<=max){//先判断在循环,
         int mid=(min+max)/2;//数组的中间数
         if(arr[mid]==num){//判断数组下标对应的值是否是查找值
             System.out.println(mid);
             break;//结束语句
         }else if(arr[mid]>num){//当数组下标对应的值大于查找值时
             max=mid-1;//查找范围在左,最大值等于中间值的左侧
         }else{
             min=mid+1;//查找范围在右,最小值等于中间值的右侧
         }
     }
     if(min>max){//当查找时数组最小值大于最大值时,查找的数据不存在
    System.out.println("查询不在数组中");
 }
 }
         public static void main(String[] args){
            int arr[]={2,1,5,8,3,6};
            System.out.println(getMax(arr));//调用最大值最小值
            MaoPo(arr);//冒泡法排序
            SelectSort(arr);//选择排序
            ShowNumber(15);//进制转变
            HalfFind(15);//折半查询
         }
         }

折半查找
------------
 在有序的数列中,进行二分法查找,每次取出搜索范围的中间
 值进行比较,依次再进行范围的缩小,直至找到所需要的值。

stack 栈:用于储存局部变量;

heap 堆:   储存数组和对象,通过new建立的实例存放在堆内存中。

猜你喜欢

转载自www.cnblogs.com/hiddenly/p/9361141.html