java——类型转换,冒泡排序,选择排序,二分查找,数组的翻转

一、类型转换

American Standard Code for Information Interchange美国标准信息交换代码.

在计算机中,所有的数据在存储和运算时都要使用二进制数表示, abcd这样的52个字母(包括大写)、以及01等数字还有一些常用的符号, 在计算机中存储时也要使用二进制数来表示,而具体用哪些二进制数字表示哪个符号,当然每个人都可以约定自己的一套(这就叫编码),而大家如果要想互相通信而不造成混乱,那么大家就必须使用相同的编码规则,于是美国有关的标准化组织就出台了ASCII编码,统一规定了上述常用符号用哪些二进制数来表示。

1、int类型和char类型的转换

char  两个字节, int 四个字节

char转成int类型的时候,类型自动提升,char数据类型,会查询编码表,得到整数,int转成char类型的时候会强制转换。

char存储汉字的时候查询Unicode编码表(中文字符在Unicode/utf-8中占2~4个字节),char可以和int计算,提示为int类型,内存中两个字节。

  • char取值范围是0-65535, 无符号的数据类型(无法存储负数)
  • short的取值范围是-32768~32767
public class ASCIIDemo{
	public static void main(String[] args){
		char c = 'a';
		int i = c + 1;  // char型转换成int型
		System.out.println(i);
		
		int j = 90;
		char h = (char)j;
		System.out.println(h);
		
		System.out.println( (char)6 );  // 使用(char)数字,将int型转换成char型数据
		
		char k = '你';
		System.out.println(k);
		
		
		char m = -1;
	}
}

 

二、排序算法

1、冒泡排序

原理:相邻元素比较,交换位置

代码实现:

public class BubbleSort {
    public static void main(String[] args){
        int arr[] = {11,2,88,6,5};
        sort(arr);
        xunhuan(arr);
    }

    public static void sort(int[] arr){
        for(int i=0;i<arr.length-1;i++){
            for(int j=0;j<arr.length-i-1;j++){
                if(arr[j]>arr[j+1]){
                    int temp = arr[j];
                    arr[j] = arr[j+1];
                    arr[j+1] = temp;
                }
            }
        }
    }

    public static void xunhuan(int[] arr){
        for(int i=0;i<arr.length;i++){
            System.out.println(arr[i]);
        }
    }
}

2、选择排序

原理:每个元素之间比较,交换位置

代码实现:

public class SelectSort {
    public static void main(String[] args){
        int arr[] = {11,2,88,6,5};
        sort(arr);
        xunhuan(arr);
    }

    public static void sort(int[] arr){
        for(int i=0;i<arr.length-1;i++){
            for (int j=i+1;j<arr.length;j++){
                if(arr[i]>arr[j]){
                    int temp = arr[i];
                    arr[i] = arr[j];
                    arr[j] = temp;
                }
            }
        }
    }

    public static void xunhuan(int[] arr){
        for(int i=0;i<arr.length;i++){
            System.out.println(arr[i]);
        }
    }

}

三、二分查找

public class BinSearch {
    public static void main(String[] args){
        int[] arr = {1,2,3,4,5,6,7,8,9,10};
        search(arr,5);
    }

    public static int search(int[] arr,int val){    //void(无类型),常用于没有返回值的方法中
        int low = 0;
        int high = arr.length-1;
        int mid = 0;
        while (low<high){
            mid = (low + high)/2;
            if(arr[mid] == val){
                return mid;
            }else if(arr[mid] < val){
                low = mid+1;
            }else if(arr[mid] > val){
                high = mid-1;
            }
        }
        return -1;
    }
}

四、数组的翻转

public class ReverseArray {
    public static void main(String[] args){
        int[] arr = {1,2,3,4,5};
        reverse(arr);
        xunhuan(arr);
    }

    public static void reverse(int[] arr){
        for(int min=0,max=arr.length-1;max>min;max--,min++){
            int temp = arr[min];
            arr[min] = arr[max];
            arr[max] = temp;
        }
    }

    public static void xunhuan(int[] arr){
        for(int i=0;i<arr.length;i++){
            System.out.println(arr[i]);
        }
    }
}

 

posted @ 2018-02-03 12:50  想54256  阅读(188)  评论(0编辑  收藏  举报