アルゴリズムの勉強をしています。ハッシュ探索法を自分なりに書いてみたのですがどうでしょうか??
処理の部分はメソッドにまとめたかったのですができませんでした。どのように記述すればうまくまとまるのでしょうか??またメソッドにすることなどがあれば教えていただきたいです。
import java.util.Scanner; class dot{ public static void main(String[] args){ int[] ary = {12, 25, 36, 20, 30, 8, 42}; int[] ary2 = new int[11]; for(int i = 0; i < ary.length; i++){ int k = ary[i] % ary2.length; //格納先の添字 for(int a = 0; a < ary.length; a++){ if(ary2[k] == 0){ //格納先に値がないか確認 ary2[k] = ary[i]; break; }else if(ary2[k] != 0){ k = (k + 1) % ary2.length; } } } Scanner scan = new Scanner(System.in); System.out.print("値を入力してください:"); int x = scan.nextInt(); int s = x % ary2.length; while(ary2[s] != 0){ //ハッシュの要素が0になるまで繰り返す if(ary2[s] == x){ System.out.println("格納場所は" + s + "番目です"); break; }else if(ary2[s] != x){ s = (s + 1) % ary2.length; } if(ary2[s] == 0){ System.out.println("見つかりませんでした"); } } } }
出力結果↓
値を入力してください:12 格納場所は1番目です
回答1件
あなたの回答
tips
プレビュー