表1.1.4典型数组处理代码
注:仅实现了关键代码,数组以double型数组为例
- 找出数组中的最大值
double max = a[0];
for(int i = 1;i<a.length;i++)
if(max < a[i])
max = a[i];
2.计算数组的平均值
double sum = 0;
int N = a.length;
for(int i = 0;i <N;i++)
sum += a[i];
double average = sum / N;
3.复制数组
double[] b = new double[a.length];
for(int i = 0;i < a.length;i ++)
b[i] = a[i];
4.颠倒数组的排序
int N = a.length;
for(int i = 0;i < N/2;i ++){
double temp = a[i];
a[i] = a[N-1-i];
a[N-1-i] = temp;
}
5.矩阵相乘
c[m][m] = a[m][n] * b[n][m]
int M = a.length;
int N = a[0].length;
double[][] c = new double[M][N];
for(int i = 0;i<M;i++)
for(int j = 0;j < N;j++)
for(int k = 0;k < N;k++)
c[i][j] = a[i][k]*b[k][j];
典型的字符串处理代码
1.判断字符串是否是一个回文
public static boolean isPalindrom(String s){
int N = s.length();
for(int i = 0;i<N/2;i++)
if(s.charAt(i)!=s.charAt(N-1-i))
return false;
return true;
}
2.从一个命令行参数中提取文件名和扩展名
String s = args[0];
int dot = s.indexOf(".");
String base = s.substring(0, dot);
String extension = s.substring(dot-1,s.length());
3.打印出标准输入行中所有含有通过命令行指定的字符串的行
String query = args[0];
while(!StdIn.empty()){
String s = StdIn.readLine();
if(s.contains(query))
StdOut.println(s);
}
4.以空白字符为分隔符从StdIn中创建一个字符串数组
String input = StdIn.readAll();
String[] words = input.split("\\s+");
5.检查一个字符串数组中的元素是否已按字母表排序好
public static boolean isSorted(String[] a){
for(int i = 1;i<a.length();i++){
if(a[i-1].compare(a[i])>0)
return false;
return ture;
}