データ構造とアルゴリズム-配列が秩序化されているかどうかを判断する(改良版)


前回はデータ構造とアルゴリズムのソートアルゴリズム支援ツールクラスと3つの基本ソートが書かれていましたが、詳細はデータ構造とアルゴリズム--ソートアルゴリズム支援ツール作成と3つの基本ソートアルゴリズム(Java実装)を参照してください.しかしその後、他のアルゴリズムを学習したところ、配列が秩序化されているかどうかを判断する方法の中にBUGがあることが分かった.配列が順序化されている場合にのみ秩序化されているかどうかを判断することができず、配列が逆順序化されている場合に秩序化されているかどうかを判断することができなかったため、私は前の方法で方法の強化と修正を行った.
  • 配列が秩序化されているか否かを判断し、秩序化してtrueを返し、無秩序にfalse
  • を返す.
    /**
     *           ,    true,    false
     * @param arr
     * @return
     */
    public static boolean isOrderly(int[] arr) {
         
    	if(isOrderAsc(arr) || isOrderDesc(arr)) {
         
    		return true;
    	}
    	return false;
    }
    
    /**
     *             ,    true,    false
     * @param arr
     * @return
     */
    private static boolean isOrderAsc(int[] arr) {
         
    	for(int i=0;i < arr.length-1;i++) {
         
    		if(arr[i] > arr[i+1]) {
         
    			return false;
    		}
    	}
    	return true;
    }
    
    /**
     *             ,    true,    false
     * @param arr
     * @return
     */
    private static boolean isOrderDesc(int[] arr) {
         
    	for(int i = arr.length-1; i > 0; i--) {
         
    		if(arr[i] > arr[i-1]) {
         
    			return false;
    		}
    	}
    	return true;
    }