给定如下算法,其时间复杂度为( )。
1 bool f(int arr[], int n, int target) { 2 for (int i = 0; i < (1 << n); i++) { 3 int sum = 0; 4 for (int j = 0; j < n; j++) { 5 if (i & (1 << j)) { 6 sum += arr[j]; 7 } 8 } 9 if (sum == target) return true; 10 } 11 return false; 12 }
O(n2)
O(n×2n)
O(1)
O(n3)