【Dois pontos】|Resposta de dois pontos, dois pontos é a forma mais usada, e também é a forma mais prática de usar

Tipo de resposta de um, dois pontos

Dicotomia, geralmente usamos para encontrar algo, mas também podemos usar esse algoritmo simples para concluir, alguma recuperação de resposta, resposta dicotômica é na verdade um método de travessia, você pode entendê-lo como um método de travessia A com uma complexidade de tempo de O ( log 2 n), antes de tudo dissemos que ele também usa um intervalo de dados para percorrer, ou seja, ao usar esse algoritmo, devemos da respostaosaberprimeiro O(nlog 2 n) , ele pode ser executado normalmente, sob condições normais de dados.

Também temos modelos relacionados para respostas binárias. Toda a operação de encontrar o valor correto é realmente semelhante à pesquisa binária. Se você estiver interessado, pode aprender primeiro sobre a pesquisa binária e depois concluir o aprendizado das respostas binárias.

pesquisa binária

Dois códigos de resposta dicotômicos

A resposta binária é relativamente simples. Dividimos o código da resposta binária em duas partes, uma parte é uma busca de placa especial e a outra parte é uma função de verificação relativamente característica .

1. Função de busca de placa

#include <iostream>
using namespace std ;

int bsearch_1 (int l ,int r )
{
    
    
    while ( l < r)
    {
    
    
        int mid = ( l + r ) >> 1 ;
        if(chech(mid))//检查条件要为成立的时候
            r = mid ;
        else 
        l = mid + 1 ;
    }
    return r ;
}
//前缀二分答案: 完成之后我们再看一下是,后缀的,也就是每次遍历之后都把l确定的代码
int bsearch_2 (int l , int r )
{
    
    
    while ( l < r )
    {
    
    
        int mid = ( l + r + 1 ) >> 1 ; 
        if(check (mid ))    l = mid ;
        else  r = mid - 1 ;  
    }
    return l ; 
} 

int main ()
{
    
    

    //完成数据的输入输出
    //最后导入数据的范围

    return 0 ;
}

Entendemos algo na pesquisa do quadro. Quando não temos certeza sobre todo o intervalo na pesquisa, podemos aumentar o intervalo inteiro e, finalmente, podemos obtê-lo. Claro, nossos dados devem ser sequenciais, portanto, podemos usar o ideia de uma resposta binária para resolvê-lo.

2, verifique a função

A função check é uma função de checagem. Esta função é a chave para resolver o problema. Possui forte autonomia e é escrita de acordo com o tópico.

Acho que você gosta

Origin blog.csdn.net/wen030803/article/details/131736995
Recomendado
Clasificación