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 里面有 三个元素 ,每个元素指向一个一维数组

posted on 2016-06-08 18:36  青春的梦想付诸行动  阅读(165)  评论(0)    收藏  举报

导航