中易网

排序找出第一大和第二大的数(不能使用冒泡算法)

答案:2  悬赏:30  
解决时间 2021-02-20 09:29
排序找出第一大和第二大的数(不能使用冒泡算法)
最佳答案
这应该是一个O(n)的算法,假设用max和secondmax保存最大值和最小值,那么先比较数组的第一和第二个数,把大的赋值给max,小的赋值给secondmax,然后从数组第三个数开始,对每一个数num执行:如果num小于secondmax,那么搜索下一个数,否则如果num大于max,那么,把max赋值给secondmax并把num赋值个max,然后搜索下一个数,否则,把num赋值给secondmax,然后搜索下一个数。
全部回答
冒泡需要双重循环 #include void main() { int a[10],t,i,j,k; for(i=0;i<=9;i++) cin>>a[i]; for(i=0; i<9; i++) for(j=0;j<=9-i;j++) { if(a[i]>a[j]) { t=a[i]; a[i]=a[j]; a[j]=t; } } for(k=0;k<=9;k++) cout<
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯