java——类型转换,冒泡排序,选择排序,二分查找,数组的翻转
一、类型转换
American Standard Code for Information Interchange,美国标准信息交换代码.
在计算机中,所有的数据在存储和运算时都要使用二进制数表示, a、b、c、d这样的52个字母(包括大写)、以及0、1等数字还有一些常用的符号, 在计算机中存储时也要使用二进制数来表示,而具体用哪些二进制数字表示哪个符号,当然每个人都可以约定自己的一套(这就叫编码),而大家如果要想互相通信而不造成混乱,那么大家就必须使用相同的编码规则,于是美国有关的标准化组织就出台了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]); } } }