如何高效地判斷數組中是否包含某特定值
阿新 • • 發佈:2017-08-11
算法 for 循環 false set ear 搜索算法 lis 復雜度
如何檢查一個未排序的數組中是否包含某個特定的值,這是在Java中非常實用並且頻繁使用的操作。另外,檢查數組中是否包含特定值可以用多種不同的方式實現,但是時間復雜度差別很大。下面,我將為大家展示各種方法及其需要花費的時間。
1.檢查數組中是否包含特定值的四種不同方法
- 使用List:
1 public static boolean useList(String[] arr,String targetValue){ 2 return Array.asList(arr).contains(targetValue); 3 }
- 使用set
1 public static
- 使用一個簡單循環
public static boolean useLoop(String[] arr,String targetValue){ for(String s:arr){ if(s.equals(targetValue)){
- 使用Arrays.binarSearch()
public static int binarySearch(int[] a, int key)
- 使用二進制搜索算法來搜索指定的 int 型數組,以獲得指定的值。必須在進行此調用之前對數組進行排序(通過上面的 sort 方法)。如果沒有對數組進行排序,則結果是不明確的。如果數組包含多個帶有指定值的元素,則無法保證找到的是哪一個。即使用Arrays.sort(a) 進行排序
1 public static boolean
時間復雜度
- 使用二進制搜索算法來搜索指定的 int 型數組,以獲得指定的值。必須在進行此調用之前對數組進行排序(通過上面的 sort 方法)。如果沒有對數組進行排序,則結果是不明確的。如果數組包含多個帶有指定值的元素,則無法保證找到的是哪一個。即使用Arrays.sort(a) 進行排序
如何高效地判斷數組中是否包含某特定值