重要提示: 请勿将账号共享给其他人使用,违者账号将被封禁!
查看《购买须知》>>>
找答案首页 > 全部分类 > 求职面试
搜题
网友您好, 请在下方输入框内输入要搜索的题目:
搜题
题目内容 (请给出正确答案)
[单选题]

给定按升序排列的n个不同整数存于数组a[1:n]中,请设计O(log n)的算法找到下标i,1 ≤ i ≤ n,使得a[i] = i,如不存在这样的下标,则返回0。要求写出函数实现。函数原型如下:int find(int a[],int n); 正确的程序是()

A.int find (int [] a, int n) { int left = 1; int right = n ; int mid = ⌊(left + right)/2⌋; while (left <= right) { if (a[mid]="=" mid) return mid;> mid) right = mid – 1; else left = mid + 1; } return 0; }

B.int find (int [] a, int n) { int left = 1; int right = n ; while (left < right) { int mid = ⌊(left + right)/2⌋; if (a[mid] == mid) return mid; if (a[mid] > mid) right = mid – 1; else left = mid + 1; } return 0; }

C.int find (int [] a, int n) { int left = 1; int right = n ; while (left <= right) { if (a[mid]="=" mid) return mid;> mid) right = mid – 1; else left = mid + 1; int mid = ⌊(left + right)/2⌋; } return 0; }

D.int find (int [] a, int n) { int left = 1; int right = n ; while (left <= right) { int mid="⌊(left" + 2⌋; if (a[mid]="=" mid) return mid;> mid) right = mid – 1; else left = mid + 1; } return 0; }

查看答案
更多“给定按升序排列的n个不同整数存于数组a[1:n]中,请设计O(log n)的算法找到下标i,1 ≤ i ≤ n,使得a[i] = i,如不存在这样的下标,则返回0。要求写出函数实现。函数原型如下:in…”相关的问题

第1题

下面的程序用“冒泡”法将数组a中的10个整数按升序排列,请将程序补充完整。 Option Base 1 Private Sub Command1_Click() Dim a a=Array(678,45,324,528,439,387,87,875,273,823) For i=【 】 For j=【 】 If a(i)【 】a(j)Then a1=a(i) a(i)=a(j) a(j)=a1 End If Next j Next i For i=1 To 10 Print a(i) Next i End Sub

点击查看答案

第2题

下面程序用“冒泡”法将数组a中的10个整数按升序排列,算法是:从数组的第1个元素开始,依次将相邻的两个数相比较(第1个数与第2个数,第2个数与第3个数……如此重复),若前面的数较大,则这两个数交换位置。这样执行一遍后,最后一个数已经是数组中最大的数。然后将数组的前n-1个数重复上述过程。如此继续,可将数组排序,请将程序补充完整。

Option Base 1

Private Sub Command1_Click()

Dim a()

a=Array(678,45,324,528,439,387,87,875,273,823)

Fori=【 】

Forj= 【 】

If a(j)【 】a(j+1)Then

a1=a(j)

a(j)=a(j+1)

a(j+1)=al

End lf

Nextj

Next i

For i=1 To 10

Print a(i)

Next i

End Sub

点击查看答案

第3题

1下面的程序用“冒泡”法将数组a中的10个整数按升序排列,请在横线处将程序补充完整。 public class Sun { public static void main(String args[]){ int[] a={678,45,324,528,439,387,87,875,273,823 }; int a1=0; for(int i=0; i<=8;i++) { for(int j= 【 】;j<=9;j++) if(a[i]>=a[j]){ a1=a[j]; a[j]=a[i]; a[i]=a1; } } for(int i=0;i<=9;i++) System.out.println(a[i]); } }

点击查看答案

第4题

下面的程序用“冒泡”法将数组a中的10个整数按升序排列,请在横线处将程序补充完整。 public class Sun{ public static void main(String args []){ int [] a={678,45,324,528,439,387,87,875,273,823}; int a1=0; for(int i=0i<=8;i++){ for(int j=【 】;j<=9;j++) if (a [i]>=a[j]){ a1=a[j]; a[j]=a[i]; a[i]=a1; } } for(int i=0;i<=9;i++) System.out.println(a[i]); } }

点击查看答案

第5题

给定有m个整数的递增有序数组A[1..m]和有n个整数的递减有序数组B[1..n],试写出算法:将数组A和B归并为递增有序数组C[1..m+n]。(要求:算法的时间复杂度为D(m+n))

点击查看答案

第6题

以下程序的功能是:先将随机产生的10个不同的整数放人数组a中,再将这10个数按升序方式输出。请填空。

Private Sub Form. Click()

Dim a(10)As Integer,i AS Integer

Randomize

i=0

Do

num=Int(Rnd*90)+10

For j=1 To i 检查新产生的随机数是否与以前的相同,相同的无效

If num=a(j)Then

Exit For

End If

Nextj

Ifj>i Then

i=i+1

a(i)=

End If

Loop Whilei<10

For i=1 To 9

For j= To 10

If a(i)>a(j)Then temp=a(i):a(i)一a(j):

Nextj

Next i

For i=1 To 10

Print a(i)

Next i

End Sub

点击查看答案

第7题

给定n个不同数的数组S和正整数i,[图],求S中最大的i个...

给定n个不同数的数组S和正整数i,,求S中最大的i个数,并且按照从大到小的次序输出,现有如下算法, 算法:对S排序,并输出S中最大的i个数。该算法在最坏情况下的时间复杂度是:

A、n

B、nlogn

C、logn

D、loglogn

E、

点击查看答案

第8题

给定n个不同数的数组S和正整数i,[图],求S中最大的i个...

给定n个不同数的数组S和正整数i,,求S中最大的i个数,并且按照从大到小的次序输出,现有如下算法, 算法:调用i次找最大算法Findmax,每次从S中删除一个最大的数。该算法在最坏情况下的时间复杂度是:

A、

B、

C、n

D、logn

E、loglogn

点击查看答案

第9题

给定n个不同数的数组S和正整数i,[图],求S中最大的i个...

给定n个不同数的数组S和正整数i,,求S中最大的i个数,并且按照从大到小的次序输出,现有如下算法, 算法:对S排序,并输出S中最大的i个数。该算法在最坏情况下的时间复杂度是:

A、

B、

C、

D、

E、

F、

点击查看答案

第10题

给定n个不同数的数组S和正整数i,[图],求S中最大的i个...

给定n个不同数的数组S和正整数i,,求S中最大的i个数,并且按照从大到小的次序输出,现有如下算法, 算法:对S排序,并输出S中最大的i个数。该算法在最坏情况下的时间复杂度是:

A、

B、

C、

D、

E、

F、

点击查看答案
下载上学吧APP
客服
TOP
重置密码
账号:
旧密码:
新密码:
确认密码:
确认修改
购买搜题卡查看答案
购买前请仔细阅读《购买须知》
请选择支付方式
微信支付
支付宝支付
选择优惠券
优惠券
请选择
点击支付即表示你同意并接受《服务协议》《购买须知》
立即支付
搜题卡使用说明

1. 搜题次数扣减规则:

功能 扣减规则
基础费
(查看答案)
加收费
(AI功能)
文字搜题、查看答案 1/每题 0/每次
语音搜题、查看答案 1/每题 2/每次
单题拍照识别、查看答案 1/每题 2/每次
整页拍照识别、查看答案 1/每题 5/每次

备注:网站、APP、小程序均支持文字搜题、查看答案;语音搜题、单题拍照识别、整页拍照识别仅APP、小程序支持。

2. 使用语音搜索、拍照搜索等AI功能需安装APP(或打开微信小程序)。

3. 搜题卡过期将作废,不支持退款,请在有效期内使用完毕。

请使用微信扫码支付(元)
订单号:
遇到问题请联系在线客服
请不要关闭本页面,支付完成后请点击【支付完成】按钮
遇到问题请联系在线客服
恭喜您,购买搜题卡成功 系统为您生成的账号密码如下:
重要提示: 请勿将账号共享给其他人使用,违者账号将被封禁。
发送账号到微信 保存账号查看答案
怕账号密码记不住?建议关注微信公众号绑定微信,开通微信扫码登录功能
警告:系统检测到您的账号存在安全风险

为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!

- 微信扫码关注上学吧 -
警告:系统检测到您的账号存在安全风险
抱歉,您的账号因涉嫌违反上学吧购买须知被冻结。您可在“上学吧”微信公众号中的“官网服务”-“账号解封申请”申请解封,或联系客服
- 微信扫码关注上学吧 -
请用微信扫码测试
选择优惠券
确认选择
谢谢您的反馈

您认为本题答案有误,我们将认真、仔细核查,如果您知道正确答案,欢迎您来纠错

上学吧找答案