1.编码表
- ASCII是二进制和字符相互转化人为规定的一张表,万国码表(unicode)是国际标准组织ISO统一各国表所制定的,并且都兼容ascii
- 数字0-9对应十进制48-57;A-Z对应65-90;a-z对应97-122;
- 编码表中Java是char和int相互转化,
a
+1=98 - char是两个字节0-65535,只有数值位
- short是两个字节最高位是符号(1为负0为正)位后面所有是数值位
- 一个汉字占两个字节
- \t相当于tab键
2.遍历几种思想
2.1逆序遍历
用两个指针分别指向最大和最小索引,
最大和最小索引所对应元素互换直到排列到最中间则完成逆序
max--,min++,一个临时存储
for(int min=0,int max=arr.length-1;min<max;min++,max--)
{
int a=arr[min];
arr[min]=arr[max];
arr[max]=a;
}
2.2选择排序
数组中每个元素相互比较,最先排出最小值,拍完一次则从本次索引+1重排整体长度-1
for (int i=0;i<arr.length-1;i++){
for (int j=i+1;j<arr.length;j++)
{
if(arr[i]>arr[j])
{
int a=arr[i];
arr[i]=arr[j];
arr[j]=a;
}
} }
2.3冒泡排序
数组中相邻元素比较,最先排出最大值,走完一次还从0索引比较,整体长度-1
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 a=arr[j+1];
arr[j+1]=arr[j];
arr[j]=a;
}
}
}
2.4二分查找法
- 三个指针,大小,中间是(min+max)/2
- 元素>中间指针,min=middle+1;
- 元素<中间指针,max=middle-1;
- 若大小指针相同时继续循环对比是否找到
int min=0;
int max=arr.length-1;
while(min<=max)
{
int middle=(min+max)/2;
System.out.println(middle+" "+min+" "+max);
if(arr[middle]<a)
{
min=middle+1;
}else if(arr[middle]>a)
{
max=middle-1;
}else
{
return arr[middle];
}
}