目录
1.1 利用for循环打印ABCDEFG...XYZ,26个大写字母与26个小写字母
1.ASCII编码表
American Standard Code for Information Interchange,美国标准信息交换代码.
计算机的世界:二进制。对于人类不好认识,不好计算。计算机非常喜欢二进制。
人类的文字,和一个整数进行一一对应
数字0-9对应ASCII编码十进制为48-57,
字母a-z对应ASCII编码十进制为97-122,
字母A-Z对应ASCII编码十进制为65-90
计算机识别汉字,中国也想让计算机识别汉字,于是定义了自己的编码表,十进制对应自己的汉字,
于是诞生了第一张简体的中文编码表,GB2312(国标2312),存的是汉字,码表字少,现在不用了,升级为GBK,我们装的中文版windows里面就是GBK(四万个以上汉字)
- 国际标准化组织,各国有各国的编码
- 万国码表(所有国家)unicode,存储了全国所有的语言
- 不管什么码表都兼容ASCII
小结:(python课件中的)
ASCII码是标准化字符集
Unicode编码:
a. 为解决传统的字符编码方案的局限而产生的
b. 跨语言、跨平台进行文本转换和处理
c. 对每种语言中字符设定统一且唯一的二进制编码
UTF-8编码:
GBK编码:《汉字内码扩展规范》
1.1 利用for循环打印ABCDEFG...XYZ,26个大写字母与26个小写字母
public class Test04 {
public static void main(String[] args) {
char da = 'A';
char xiao = 'a';
for (int i = 0; i < 26; i++) {
System.out.println("大写字母 "+da+" ,小写字母 "+xiao);
da++; //更新大写字母值
xiao++; //更新小写字母值
}
}
}
1.2 利用for循环打印 9*9 表
public class Test05 {
public static void main(String[] args) {
for (int j = 1; j < 10; j++) {
for (int k = 1; k <= j; k++) {
System.out.print(k +"*"+ j +"="+ j*k +"\t");
}
System.out.println();
}
}
}
2.数组方法练习
2.1数组元素逆序
图解:
//数组元素逆序
public static void receive(int[] arr){
for (int start = 0, end = arr.length-1; start < end; start++,end--) {
int temp = arr[start];
arr[start] = arr[end];
arr[end] = temp;
}
}
//打印数组
public static void printArray(int[] arr) {
System.out.print("[");
for (int i = 0; i < arr.length; i++) {
if (i == arr.length - 1) {
System.out.println(arr[i]+"]");
} else {
System.out.print(arr[i]+", ");
}
}
}
2.2 数组元素选择排序
图解:
//选择排序
public static void selectSort(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;
}
}
}
}
2.3 数组元素冒泡排序
图解:
上图中相邻的元素值依次比较,把大的值放后面的元素中,数组循环一圈后,则把最大元素值互换到了最后一个元素中。
数组再循环一圈后,把第二大的元素值互换到了倒数第二个元素中。
按照这种方式,数组循环多圈以后,就完成了数组元素的排序。这种排序方式我们称为冒泡排序。
//冒泡排序
public static void bubbleSort(int[] arr) {
//功能
//外层循环用来控制数组循环的圈数
for (int i = 0; i < arr.length-1; i++) {
//j < arr.length-1 为了避免角标越界
//j < arr.length-1-i 为了比较效率,避免重复比较
//内层循环用来完成元素值比较,把大的元素值互换到后面
for (int j = 0; j < arr.length-1-i; j++) {
if (arr[j] > arr[j+1]) {
int temp = arr[j];
arr[j] = arr[j+1];
arr[j+1] = temp;
}
}
}
}
//ArrayMethodTest_2.java
package javaProject7;
public class ArrayMethodTest_2 {
public static void main(String[] args) {
int[] array= {3,5,1,6,22,56,8};
selectSort(array);
printArray(array);
bubbleSort(array);
printArray(array);
}
public static void bubbleSort(int[] array) {
for(int i=0;i<array.length-1;i++) {
for(int j=1; j<array.length-i-1; j++) {
if(array[j]>array[j+1]) {
int temp=array[j];
array[j]= array[j+1];
array[j+1]= temp;
}
}
}
}
//选择排序
public static void selectSort(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 printArray(int[] arr) {
System.out.print("[");
for(int i=0; i<arr.length; i++) {
if(i==arr.length-1) {
System.out.print(arr[i]+"]");
}else {
System.out.print(arr[i]+",");
}
}
System.out.println();
}
}
2.4 数组元素普通查找
图解:
public static int getArrayIndex(int[] arr, int number) {
//把数组中的元素依次与指定的数值 进行比较
for (int i = 0; i < arr.length; i++) {
if (arr[i] == number) {
//找到了
return i;
}
}
return -1;
}
2.5 数组元素二分查找(折半查找)
图解:
图解:
/*
* 定义方法,实现折半查找
* 返回值:索引
* 参数:数组,被找的元素
* 实现步骤:
* 1.需要的变量定义:三个指针min,mid。max
* 2.进行循环的条件 min<=max
* 3.背照的元素和中间的索引元素进行比较
* 元素 > 中间索引 小指针= 中间+1
* 元素 < 中间索引 大指针 = 中间-1
* 元素 ==中间索引 找到了,结束,返回中间索引
* 4.循环结束,无法折半,元素没有找到则返回-1
*/
public static int binarySearch(int[] arr, int key) {
int min = 0;
int max = arr.length-1;
int mid = 0;
//循环折半,条件 min<=max
while(min <= max) {
mid = (min+max)/2;
//没找了, 更新范围,继续比较
//更新范围
if(key > arr[mid]) {
//在右边
min = mid + 1;
}else if (key < arr[mid]) {
//在左边
max = mid - 1;
}else {
//找到了
return mid;
}
}
return -1;
}