下面的一小段代码是检测是否注册号为“XYZ123"的汽车被偷了
List<String> stolenCars;
.....
boolean stolen(String car){
Iterator<Car> i= stolenCars.iterator();
while(i.hasNext()){
if (i.next().regId()==car){return true;}}return false;}用几句话解释怎么能用哈希表来改善stolen 的 efficiency 从O(n)到O(1)并且解释是如何工作的
List<String> stolenCars;
.....
boolean stolen(String car){
Iterator<Car> i= stolenCars.iterator();
while(i.hasNext()){
if (i.next().regId()==car){return true;}}return false;}用几句话解释怎么能用哈希表来改善stolen 的 efficiency 从O(n)到O(1)并且解释是如何工作的
根据key就直接由散列函数直接等到value,所以时间复杂度为O(1)
而不用遍历整个List来一个一个比较(时间复杂度为O(n),因为最坏的情况可能要比较n次)