Advertisement
Guest User

Untitled

a guest
Apr 24th, 2019
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.26 KB | None | 0 0
  1. // 同じ数字は2つ以上ない、という前提
  2.  
  3. public class HashSearch2 {
  4. public static void main(String[] args) {
  5. int[] arrayOrigin = {10, 3, 14, 16, 2, 12}; // 要素に"0"がない配列
  6. int[] arrayHashed = new int[(int)(arrayOrigin.length * 1.5)];
  7. arrayHashed = hashArray(arrayOrigin, arrayHashed);
  8. for (int v : arrayHashed) {
  9. System.out.print(v + ",");
  10. }
  11. System.out.println();
  12. hashSearch2(arrayHashed, 12);
  13. hashSearch2(arrayHashed, 5);
  14. }
  15. public static int[] hashArray(int[] arrayO, int[] arrayH) {
  16. int k;
  17. for (int i = 0; i < arrayO.length; i++) {
  18. k = arrayO[i] % arrayH.length;
  19. while (arrayH[k] != 0) {
  20. k = (k + 1) % arrayH.length;
  21. }
  22. arrayH[k] = arrayO[i];
  23. }
  24. return arrayH;
  25. }
  26. public static void hashSearch2(int[] arrayH, int number) { // numberは探したい数
  27. int k = number % arrayH.length;
  28. while (arrayH[k] != 0) {
  29. if (arrayH[k] == number) {
  30. System.out.println("探している数" + number + "は、配列の" + k + "要素目です");
  31. return;
  32. } else {
  33. k = (k + 1) % arrayH.length;
  34. }
  35. }
  36. System.out.println("探している数" + number + "は、配列内に存在しません");
  37. }
  38. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement