zoukankan      html  css  js  c++  java
  • 查找数组中最大的2个数

    (1)在C语言的被调用函数中,没有办法求出数组实参的大小,因此需要显示传递array_length参数。详见博客:C语言内存分配时间。

    (2)以O(N)的计算时间得出结果。


    #include <stdio.h>
    
    void find_2_largest(int array[], int array_length, int *plargest, int *psecond_largest);
    
    int main(void){
            int array[10]={23,45,987,3,-90,123,987,1975,988,0};
            int largest=0;
            int second_largest=0;
            int array_length=sizeof(array)/sizeof(array[0]);
    
            find_2_largest(array, array_length, &largest, &second_largest);
    
            printf("The 2 largest number is: %d and %d.\n", largest, second_largest);
            return 0;
    }
    
    
    
    void find_2_largest(int array[], int array_length, int *plargest, int *psecond_largest){
    
            if(array[0]>array[1]){
                    *plargest=array[0];
                    *psecond_largest=array[1];
            }else{
                    *plargest=array[1];
                    *psecond_largest=array[0];
            }
    
            for(int i=2; i<array_length; i++){
                    if(array[i]>*plargest){
                            *psecond_largest=*plargest;
                            *plargest=array[i];
                    }else if(array[i]>*psecond_largest){
                            *psecond_largest=array[i];
                    }
    
            }
    }


  • 相关阅读:
    区间DP——石子合并
    线性DP-最短编辑距离、编辑距离
    生成树协议
    交换机技术
    以太网原理
    接口知识点
    目前在中国有影响的几种现场总线比较
    委托
    C#有关继承知识点
    C#数组总结
  • 原文地址:https://www.cnblogs.com/eaglegeek/p/4558027.html
Copyright © 2011-2022 走看看