【Java算法】學習常用的算法

1.迴文算法。

要求:判斷一個字符串是否屬於迴文。

解釋:迴文指的是一個字符串從左往右讀和從右往左讀的結果是一致的,例如:abcdcba  1234321等等。

public static void main(String[] args){
    String s = "abcdcba";
    if(isPalindrome(s)){
        System.out.println("是迴文");
    }else{
         System.out.println("不是迴文");
    }
}

//判斷字符串是否爲迴文
public static Boolean isPalindrome(String s){
    Boolean flage  = false;
    int s_length = s.length();
    for(int i=0;i<s_length/2;i++){
        if(s.CharAt(i)==s.CharAt(s_length-1-i)){
            flage = true;
        }else{
            flage = false;
        }
    }
    return flage;
}

2.冒泡排序算法:

public static void main(String[] args) {
	int[] a = {-2,1,-3,7,-1,2,1,-5,4};
		
	int temp=0;
	for(int i=0;i<a.length;i++) {
		for(int j=i;j<=a.length-1;j++) {
			if(a[i]>a[j]) {
				temp=a[i];
				a[i]=a[j];
				a[j]=temp;
			}
		}
			
	}
		
	for(int b:a) {
		System.out.print(b+"\t");
	}
}

3.楊輝三角

        int[][] a = new int[5][];
		for(int v=0;v<a.length;v++) {
			a[v] = new int[v+1];//初始化每行的元素個數
		}
		for(int i=0;i<a.length;i++) {
			for(int j=0;j<a[i].length;j++) {//a[i].length:每行元素的個數
				a[i][0] = a[i][i] = 1;//將所有行的開頭和末尾值變成1				
				if(i>j && j>0 && i>1) {//i>1:從第二行開始。i>j:
					 a[i][j]= a[i-1][j]  + a[i-1][j-1];
				}
				 System.out.print(a[i][j] + "\t");
			}
			System.out.println();
		}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章