• 查找数组中最大的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];
                    }
    
            }
    }


  • 相关阅读:
    Tensorflow结点打包和依赖控制
    理解sklearn.feature.text中的CountVectorizer和TfidfVectorizer
    scipy稀疏矩阵
    最佳阈值划分问题
    hihocoder217周 树形DP
    linux免密码登录
    我说
    Linux查看GPU使用情况
    Java交替打印两个字符串
    2018摩拜算法工程师笔试题
  • 原文地址:https://www.cnblogs.com/jediael/p/4304237.html
Copyright © 2020-2023  润新知