_線形検索アルゴリズムとバイナリ検索

com.atguigu.exerパッケージ; 

/ * 
 * 1.リニア検索
 *あなたが目的の要素を見つけるまで、起動プロセスの終わりから各要素をチェックし、列に与えられた値を検索します。
 *リニアサーチは、シーケンシャルサーチと呼ばれています。
 * 2.検索二分法
 *大量のデータのための二分法を見て、そのデータは良い順にする必要があります。
 * / 

パブリッククラスArrayTest1 { 
	公共の静的な無効メイン(文字列[] args){ 
		//線形1.見つける
		//文字列配列
		のString [] arrStr =新しいString [ ] { "AA"、 "BB"、 "CC"を、 "DD"、 "EE"}; 
		//反復
		のために(INT I = 0; I <arrStr.length; Iは++){ 
			System.out.printの(arrStr [I] + ""); 
		} 
		のSystem.out.println (); 

		文字列objStr = "BB"; //宛先文字列
		ブールフラグ= TRUE; //同一
		見出さ//指定された要素
		I;のためには、(i = 0 int型 <arrStrを。長さ; I ++){
			(objStr.equals(arrStr [I])){IF 
		ブールFLAG1 =真; //識別
				System.out.println(「指定された要素の場所は見つけ:」+ I)、
				フラグにfalseに=; 
				BREAK; 
			} 
		} 
		//指定された要素が見つからない
		(フラグに){IF 
			のSystem.out.printlnは(「指定された要素を見つけられませんでした「); 
		} 
		のSystem.out.println(); 

		
		
		//バイナリ検索2(提供:求め数が順序付けされる)
		//整数配列
		INT [] arrNum =新しいINT [ ] {12、24、 36、48、56、76、88、94}; 
		//反復
		のために(I = 0にint型、I <arrNum.length; Iは++){ 
			System.out.printの(arrNum [I]は+ ""); 
		} 
		システム.out.println(); 
		
		int型objNum = 48; //数を検索する
		int型のヘッド= 0; //ヘッダインデックス
		INT端= arrNum.length - 1; //エンド指数
		一方、(ヘッド<=エンド){ 
			int型= MID(エンドヘッド+)/ 2; //インデックスの中間位置
			(objNum == arrNum [中間]であれば ){// 検索
				するSystem.out.println( "指定された要素の場所は見つけ:" + MID)、
				FLAG1 = falseに; //要素が見つかった場合、変更FLAG1の
				BREAKを; 
			<(arrNum [MID] {}他objNum)IF 
				。エンド= MID - 1; 
			}他{objNum //> arrNum [MID] 
				ヘッドを1 + = MID; 
			} 
		} 
		//(無変化FLAG1)見つかりませんではない
		(FLAG1 IF ){ 
			のSystem.out.println() "指定された要素を見つけられませんでした"; 
		} 
		

	} 
}

  

おすすめ

転載: www.cnblogs.com/stefaniee/p/10930767.html