O(n):
参数:所有权限用户对象组,用户ID
返回:true[有权限],false[没有权限]
伪代码:
function isPower(Power[] powers, int userId) {
for each power in powers {
if (userId == power.id)
return true;
}
return false;
}
O(1):
参数:所有权限用户ID组[经过了排序],用户ID
返回:true[有权限],false[没有权限]
伪代码:
Arrays.sort(powerIds); //进行排序
function isPower(int[] powerIds, int userId) {
if (Arrays.binarySearch(powersIds, userId) > -1)
return true;
return false;
}
技巧:
一、待查找的集合进行排序
二、采用O(1)查找算法