1 package iYou.neugle.search;
2
3 public class Hash_search {
4 private static int m = 13;
5 private static int[] hash = new int[m];
6 private static int[] array = new int[] { 13, 25, 2, 60, 39, 52 };
7
8 public static void main(String[] args) {
9 InsertHash();
10 System.out.println("哈希表建立如下:");
11 System.out.print("[");
12 for (int i = 0; i < hash.length; i++) {
13 System.out.print(hash[i]);
14 if (i != hash.length - 1) {
15 System.out.print(",");
16 }
17 }
18 System.out.println("]");
19 System.out.println("39在哈希表中的位置为:" + SearchHash(39));
20 }
21
22 public static void InsertHash() {
23 // 除法取余法
24 for (int i = 0; i < array.length; i++) {
25 int value = array[i];
26 int address = value % m;
27 while (hash[address] != 0) {
28 address = (++address) % m;
29 }
30 hash[address] = value;
31 }
32 }
33
34 public static int SearchHash(int key) {
35 // 开放地址法
36 int address = key % m;
37 while (hash[address] != 0 && hash[address] != key) {
38 address = (++address) % m;
39 }
40
41 if (hash[address] == 0) {
42 return -1;
43 }
44 return address;
45 }
46 }