• day04 java 排序与查找进制转换 数组


    public class selectsort10 {
        public static void main(String[] args)
        {
            int[] arr = new int[]{1,20 ,10,4,5,6};
            selectsort(arr);
            //排序后
            printArray(arr);
        }
    
        public static void  selectsort(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;
                    }
                }
            }
        }
        
        public static void printArray(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.println(arr[x]+"]");
            }
        }
    }
    选择排序
    public class bubblesort {
        public static void main(String[] args)
        {
            int[] arr = new int[]{1,20 ,10,4,5,6};
            bubblesort(arr);
            //排序后
            printArray(arr);
        }
    
        public static void  bubblesort(int[] arr)
        {
            for(int x=0;x<arr.length-1;x++)
            {
                for(int y=0;y<arr.length-x-1;y++)
                {
                    if(arr[y]>arr[y+1])
                    {
                        int temp = arr[y];
                        arr[y] = arr[1+y];    arr[y+1] 
    
    = temp;
                    }
                }
            }
        }
        
        public static void printArray(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.println(arr[x]+"]");
            }
        }
    }
    冒泡排序

     希尔排序效率最高

    public class halfsearch {
        public static void main(String[] args)
        {
            int[] arr = new int[]{1,2 ,3,4,5,6};
            int index = halfsearch(arr,6);
            System.out.println("index="+index);
            
        }
    
        public static int halfsearch(int[] arr,int key)
        {
            int mid,min=0,max=arr.length-1;
            while(min<=max)
            {
                mid = (max+min)>>1;
                if(arr[mid]==key)
                    return mid;
                else
                    if(arr[mid]>key)
                        max=mid-1;
                    else
                        min=mid+1;
            }
            return -1;
        }
        
        /*
        public static int getIndex(int[] arr,int key)
        {
            for(int x=0;x<arr.length;x++)
            {
                if(arr[x]==key)
                    return x;
            }
            return -1;
        }
        */
    }
    二分查找
    //十进制转换成十六进制
    class tohex {
        public static void main(String[] args)
        {
            tohex(-16);        
        }
        
        
        
        
        public static void tohex(int num)
        {
            
            char[] chs ={
                '0','1','2','3','4','5','6','7'
                ,'8','9','a','b','c','d','e','f'
            };
            char[] arr = new char[8];
            int pos = arr.length;
    
            while(num!=0)
            {
                int temp =num&15;
                            
                arr[--pos]= chs[temp];
                num =num >>> 4;
            }
            for(int x=pos;x<arr.length;x++)
                System.out.print(arr[x]+",");
            
        }
    }
    十进制转化十六进制
    java中无符号右移一位!是以二进制代码进行的!一个字节表示一个数字。即使八个比特位
    如 22
    二进制是 00010110 用你的式子就变成了:00001011
    右移一位不足的补0
    又如-22
    二进制是:用补码表示,是11101001 右移1位变成了01110100
    移出去的位数就被丢弃!
    十进制转换成二进制
    class tobin {
        public static void main(String[] args)
        {
            toBin(6);        
        }
    
        public static void toBin(int num)
        {
            StringBuffer sb = new  StringBuffer();
            while(num>0)
            {
                //System.out.println(num%2);
                sb.append(num%2);
                num/=2;
            }
            System.out.println(sb.reverse());
        }
    }
    十进制转化二进制

    int[][] arr = new int[3][];

    print(arr[0]) 输出null;

    int[][] arr = new int[3][4];

    print(arr[0]) 输出arr[]指向的一位数组

    arr 里面有 三个元素 ,每个元素指向一个一维数组

  • 相关阅读:
    C# 之 获取文件名及拓展名
    C# 之 日常积累(二)
    C# 之 OpenFileDialog的使用
    Linux系统中,main函数的执行过程
    linux线程的实现
    linux内核--进程与线程
    内核线程和进程的区别
    软中断和硬中断
    Linux 2.4.x内核软中断机制
    几种USB控制器类型:OHCI,UHCI,EHCI,xHCI
  • 原文地址:https://www.cnblogs.com/WDKER/p/5571150.html
Copyright © 2020-2023  润新知