码迷,mamicode.com
首页 > 编程语言 > 详细

用数组实现 最简 hash线性探测

时间:2020-02-27 20:55:05      阅读:82      评论:0      收藏:0      [点我收藏+]

标签:void   author   next   import   ash   大小   dem   new   pac   

package arr;

import java.util.Random;

/**

  • 模拟线性寻址式hash函数
  • 模拟将1000大小包含50个数字的数组,存入大小为100的数组内(为了方便判断,我们将0的hash直接设置为0
  • 由于数字太多,所以选择random随机生成
  • @author Christie2020
    */
    public class HashDemo {
    public static void main(String[] args) {

     //制作一个测试数组
     int[] testArr = new int[1000];
     Random random = new Random();
     int[] supportArr  = new int[50];
     for (int i = 0; i < supportArr.length; i++) {
         supportArr[i] = random.nextInt(9999);
     }
    
     //输入预设置的50个数
     System.out.println("输出预设置的50个数");
     for (int i = 0; i < supportArr.length; i++) {
         if ((i+1)%5 == 0 && i != 0){
             System.out.printf(String.format("%4d\n",supportArr[i]));
         }else {
             System.out.printf(String.format("%4d\t",supportArr[i]));
         }
     }
    
     for (int i = 0; i < 50; i++) {
         testArr[random.nextInt(1000)] = supportArr[i];
     }
    
    
     HashArray hashArray = new HashArray();
     hashArray.hashArr(testArr);

    }

}
class HashArray{

//输入一个大小1000的数组

public void hashArr(int[] arr){
//创建容器数组
int[] targetArr = new int[100];
//
int temp = 0;
for (int i = 1; i < 1000; i++) {
temp = arr[i]%100;
if (arr[i] != 0){
if (targetArr[temp] == 0){ //如果当前位置为0,则直接存储
}else {//如果当前位置不为0,则顺序向下找
while (targetArr[temp] != 0 ){
if (temp <100){
temp++;
}else {
temp = 0;
}

              }
           }
           targetArr[temp] = arr[i];
       }
   }
   //输出变化后的数组
   System.out.println("输出变化后的数组");
   for (int i = 0; i < targetArr.length; i++) {
       if ((i+1)%10 == 0 && i != 0){
           System.out.printf(String.format("%4d\n",targetArr[i]));
       }else {
           System.out.printf(String.format("%4d\t",targetArr[i]));
       }
   }

}

}

用数组实现 最简 hash线性探测

标签:void   author   next   import   ash   大小   dem   new   pac   

原文地址:https://www.cnblogs.com/lms2020/p/12374178.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!