11问答网
所有问题
1000个无序整数最多要比较多少次才可以找到最大值 (c语言面试问题)
如题 告诉我方法 还有找到第2大数要多少次比较
举报该问题
推荐答案 2012-07-06
应该是最少比较次数吧,最多的话不就可以反复比较了?
不重复比较的话每个数都和别的数比较一次,对多可以比较(999+0)*1000/2次
冒泡排序,选择排序都是(999+0)*1000/2次,插入排序小于(999+0)*1000/2次
找最第二大数我觉得可以记下max1最大,max2第二,然后顺序扫描数组,和max1比较,如果元素比max1大,就max2=max1,max1=该元素,所以只要比较999次就行了
温馨提示:答案为网友推荐,仅供参考
当前网址:
http://11.wendadaohang.com/zd/SS4PvPFFP.html
其他回答
第1个回答 2012-07-06
999次:将1000个数随便排列,将第一个数与第二个数比较,将较大数放在第二个数的位置;再将第二个数与第三个数比较,将较大数放在第三个数的位置;依次往下,就将这1000个数从小到大排列起来,共用999次比较,因此经排列后最后一个数就是最大值,倒数第二个数就是第二大数。
第2个回答 2012-07-06
如果你问具体的几次我没去算,这里考察下复杂性,
找到最大和第二大都只要o(n)次。
同时存在线性时间(o(n))的选择算法找出第k大的数,这个你可以去学习算法设计。
相似回答
用
C语言
编程:编写程序,要求在
无序
数组中
查找
给定值首次出现的位置...
答:
1. 不定长度,最好用链表实现2. 可以动态分配内存来做数组,不过频繁操作内存,效率低下 csyjun99 | 发布于2012-11-10 举报| 评论 0 0 为您推荐: 指针数组 求数组中的平均值 找两个数组的差集 用数组求平均值 已有一个排列好的数组
C语言
用二维数组输出 有序数组 无序列表 无序数组是什么...
大家正在搜
体重最多输入2位整数1位小数
最多有三个整数解
最多有六个整数解
最多三位整数和两位小数
最多有三个整数解是什么意思呢
用函数求n个整数中能被5整除
整数包括什么数和什么数
三位整数除以两位小数
两位整数一位小数且大于零
相关问题
1000个无序整数最多要比较多少次才可以找到最大值
一道c语言编程题:给定10个范围在-1000至1000之间的...
求大神用c语言设计程序,要求输入n个数(n最多1000,最少...
计算机100个无序的整数进行选择排序,要多少趟,每趟要比较多...
C语言3个数求最大值怎么写啊!!!我搞了半天都不行!
C语言,老师要求比较三个数中的最大值
C语言最大值问题
C语言问题描述 输出一批整数(每个整数值都在-1000~10...