• 经典算法详解(2)寻找数组中的次大数


    题目:10个互不相等的整数,求其中的第2大的数字,要求数组不能用排序,设计的算法效率越高越好。

     1 #include<iostream>
     2 
     3 using namespace std;
     4 
     5 int max_second(int *arr,int n) {
     6     int  max_first = arr[0], max_second = arr[0];
     7     for (int i=1; i < n; i++) {
     8         if (arr[i] > max_first) {    //当大于最大数的时候
     9             max_second = max_first;
    10             max_first = arr[i];
    11         }
    12         else if (arr[i] > max_second) {    //当小于最大数,大于次大数的时候
    13             max_second = arr[i];
    14         }
    15     }
    16     return max_second;
    17 }
    18 
    19 int main(int argc, char *argv[]) {
    20     int array[] = { 17,3,2,5,6,4,10,7,19,16 };
    21     cout << max_second(array, sizeof(array)/sizeof(int));
    22     getchar();
    23     return 0;
    24 }
  • 相关阅读:
    散列
    AVL树的单旋与双旋
    Ubuntu系统目录
    os x文件系统结构简介
    c语言静态局部变量
    创建J2EE 5.0工程后,JSTL不能使用解决方法
    mysql
    指针
    servlet 访问项目
    c数组
  • 原文地址:https://www.cnblogs.com/ys99/p/9196029.html
Copyright © 2020-2023  润新知