算法效率的度量

Posted 学习只为旅行

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法效率的度量相关的知识,希望对你有一定的参考价值。









空间换时间的例子:

/*
    问题: 
    在一个由自然数1-1000中某些数字所组成的数组中,每个数字可能出现零次或者多次。
    设计一个算法,找出出现次数最多的数字。
*/

#include <iostream>

using namespace std;

void search(int a[], int len)     // O(n)
{
    int sp[1000] = {0};//0-999格子记录出现的次数
    int max = 0;
    
    for(int i=0; i<len; i++)
    {
        sp[a[i] - 1]++;//统计工作
        //为什么要减一呢?自然数1-1000,1000的话会越界,所以减一
        //记录的是数字出现次数
    }
    
    for(int i=0; i<1000; i++)
    {
        if( max < sp[i] )
        {
            max = sp[i];
        }
    }
    
    for(int i=0; i<1000; i++)
    {
        if( max == sp[i] )
        {
            cout << i + 1 << endl;//打印出来的就是出现最多的数字了
        }
    }
}

int main(int argc, char* argv[])
{
    int a[] = {1, 1, 3, 4, 5, 6, 6, 6, 3, 3};
    
    search(a, sizeof(a)/sizeof(*a));

    return 0;
}

很巧妙的算法,好好看看


只能说是同一个级别的,不能说相同!!!

小结

以上是关于算法效率的度量的主要内容,如果未能解决你的问题,请参考以下文章

数据结构与算法学习笔记

算法效率的度量

第六课 算法效率的度量

第六课算法效率的度量

常见的相似度度量算法

数据结构简介和算法效率度量