Data Structures and Programming Methodology CS61

Asymptotics
(a) We have a function findMax that iterates through an unsorted int array once and returns the maximum element found in that array. Give the tightest lower (Ω(· )) and upper bounds ( O ( · )) of findMax in terms of N , the length of the array. Is it possible to define a Θ( · ) bound for findMax ?
iuww520iuww520iuww520iuww520iuww520iuww520iuww520iuww520
(b) Give the worst case and best case runtime in terms of M and N . Assume ping is in Θ(1) and returns an int .
1 for ( int i = N; i > 0; i--) {
2 for ( int j = 0; j <= M; j++) {
3 if (ping(i, j) > 64) break ;
4 }
5 }
(c) Below we have a function that returns true if every int has a duplicate in the array, and false if there
is any unique int in the array. Assume sort(array) is in Θ( N log N ) and returns array sorted.
1 public static boolean noUniques( int [] array) {
2 array = sort(array);
3 int N = array.length;
4 for ( int i = 0; i < N; i += 1) {
5 boolean hasDuplicate = false ;
6 for ( int j = 0; j < N; j += 1) {
7 if (i != j && array[i] == array[j]) {
8 hasDuplicate = true ;
9 }
10 }
11 if (!hasDuplicate) return false ;
12 }
13 return true ;
14 }
Give the worst case and best case runtime in Θ( · ) notation, where N = array.length .
I Am Speed
(a) For each code block below, fill in the blank(s) so that the function has the desired runtime. Do not  use any commas. If the answer is impossible, just write ”impossible” in the blank. Assume that System.out.println runs in constant time. You may use Java’s Math.pow(x, y) to raise x to the power of y .
// Desired Runtime: Θ( N )
public static void f1( int N) {
for ( int i = 1; i < N; ____________){
System.out.println("hi Teresa");
}
}
// Desired Runtime: Θ(log N )
public static void f2( int N) {
for ( int i = 1; i < N; ____________) {
System.out.println("howdy Ayati");
}
}
// Desired Runtime: Θ(1)
public static void f3( int N) {
for ( int i = 1; ____________; i += 1) {
System.out.println("hello Daniel");
}
}
  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值