因爲後面編寫算法涉及一些基礎語法,我這邊先複習複習有錯誤望指導。算法
數組操做數組
public class ArrayDemo { /** * 數組操做小樣類 * @addPerson : 黃昭濱 2018-3-12 * @param args */ public static void main(String[] args){ } /** * 找出數組中最大數 並返回 */ public double arrayIsMax(){ //定義一個數組 double[] unkonwn = new double[10]; //先把第一個假設爲最大值 double isMax = unkonwn[0]; for(int i=1;i<unkonwn.length;i++){ if(unkonwn[i]>isMax){ //若是當前這個索引的值大於假設最大值 就直接賦值過去 isMax = unkonwn[i]; } } return isMax; } /** * 計算元素的平均值 */ public double arrayIsAverage() { //定義一個數組 double[] unkonwn = new double[10]; //獲取數組長度 int N = unkonwn.length; //定義數組累加值字段 double sum = 0.0; for (int i = 0; i < N; i++) { sum += unkonwn[i]; } return sum/N; } /** * 複製數組 */ public double[] arrayIsCopy() { //定義一個數組 double[] unkonwn = new double[10]; //獲取數組長度 int N = unkonwn.length; //建立一個被複制的數組同樣的殼 double[] copyArray = new double[N]; for (int i = 0; i < N; i++) { copyArray[i] = unkonwn[i]; } return copyArray; } /** * 顛倒數組元素順序 */ public double[] arrayIsFlip() { //定義一個數組 double[] unkonwn = new double[10]; //獲取數組長度 int N = unkonwn.length; for (int i = 0; i < N/2; i++) { double temp = unkonwn[i]; unkonwn[i] = unkonwn[N-1-i]; unkonwn[N-1-i] = temp; } return unkonwn; } /** * 矩陣相乘 */ public double[] arrayIsMatrix() { //定義一個數組 double[] unkonwn = new double[10]; //獲取數組長度 int N = unkonwn.length; //建立相似矩陣的雙數組結構 double[][] x = new double[N][N]; for (int i = 0; i < N; i++) { for(int j =0;j<N;j++){ //開始計算i行和j列的點乘 for(int k =0;k<N;k++){ x[i][j] +=x[i][k]*x[k][j]; } } } return unkonwn; } }
這邊最後一個用了二維數組,二維數組就是一堆數組,二維數組能夠長度不一致是良莠不齊的,可是二維數組有默認規定i i表明行 j表明列,建立的時候要在類型以後制定行數列數,它的圖形結構以下(本身畫的你們將就着看):spa
靜態方法:code
/** * 靜態方法小樣類 * @addPerson : hzb 2018-3-122 */ public class StaticDemo { public static void main(String[] args){ } /** * 計算一個絕對值 */ public static int abs(int x){ if(x < 0){ return -x; }else { return x; } } /** * 計算一個浮點數的絕對值 */ public static double abs1(double x){ if(x < 0.0){ return -x; }else { return x; } } /** * 計算一個是否素數 */ public static boolean abs2(int x){ if(x < 2){ return false; } for(int i =2;i*i<=x;i++){ if(x % i==0){ return false; } } return true; } /** * 計算平方根 * 注意這個地方用的是迭代的方法大家能夠搜索一下牛頓迭代法 */ public static double abs3(double x){ if(x < 0){ return Double.NaN; } double err = 1e-15; double t = x; while(Math.abs(t-x/t)>err*t){ t= (x/t+t)/2.0; } return t; } }
有寫錯指出望指出 wavesape@126.com
addPerson :hzb 2018-3-12 22:29:28blog