(A) o conceito básico

1. A estrutura de dados (estrutura de dados)

  1. Eficiência do processo para resolver os problemas com a organização dos dados pertinentes
  2. soluções de eficiência para os problemas relacionados com a eficácia com espaço
  3. soluções engenhosas para os problemas relacionados com o grau de eficiência com o algoritmo
#include <stdio.h>
#include <time.h>
clock_t start, stop;  //clock_t是clock()函数返回的变量类型
double duration;  //记录被测函数运行时间,单位:秒
int main(void)
{
	start = clock();  //clock():捕捉从程序开始运行到clock()被调用时所耗费的时间(单位:时钟打点)
	//测试算法
	stop = clock();
	duration = ((double)(stop - start)) / CLK_TCK;  //CLK_TCK:机器时钟每秒所走的时钟打点数(1000)
	printf("算法所用时间为%f秒\n",duration);
	return 0;
}

2. Os três elementos de estrutura de dados

A estrutura lógica dos dados (estrutura lógica)

  1. estrutura linear: um para um entre os elementos
  2. Gráficos da estrutura: muitos para muitos relacionamentos entre elementos
  3. estrutura em árvore: um para muitos relação entre elementos

estrutura de armazenamento de dados (estrutura de armazenamento)

  1. estrutura de armazenamento sequencial: Elemento de dados é a secção de endereço de espaço contíguo (matriz) na memória
  2. Estrutura de armazenamento: elementos discretos de dados no endereço de memória, contínua (lista) por ponteiro lógico

Os dados operacionais (funcionamento): tipo de dados permite que as operações (a realização dessas operações é o algoritmo utilizado)

3. tipos de dados abstractos (resumo tipo de dados)

Tipo de dados:

  1. Jogo de objetos de dados
  2. dados de operação definido associado com um conjunto

Resumo: Descrição de tipos de dados não depende do método de aplicação específica

  1. Independentemente da máquina para armazenar dados
  2. Independentemente da estrutura física do armazenamento de dados
  3. Nada a ver com algoritmos para conseguir operar e linguagens de programação

4. O método (algoritmo)

  1. Um conjunto de instruções limitado (Limitação)
  2. Aceitar alguma entrada (não há necessidade de entrar em alguns casos)
  3. Gerar uma saída (saída a ser gerado)
  4. Certos terminação (executória) depois de um passo limitado
  5. Cada instrução deve ter um objetivo claro, não ambigüidade, deve estar dentro do computador pode lidar com isso (certeza)

A medida dos méritos do algoritmo

1. validade: o algoritmo deve atender às necessidades exatas dos problemas específicos

2. Robustez: Quando você inserir dados inválidos, o algoritmo pode fazer o tratamento adequado

3. Legibilidade: lendo beneficiar os outros

4. A complexidade de tempo (tempo de complexidade) T (n) = O (f (n)): o programa corre o comprimento do tempo gasto

  1. O uso extensivo de ciclo
  2. Multiply e tempo divisão consumir de adição e subtração
  3. Normalmente análise é geralmente o pior complexidade de tempo

A complexidade espaço (complexidade espaço) S (n) = O (f (n)): uma unidade de armazenamento de programa ocupa quando executado comprimento

  1. Um grande número de chamadas de função recursiva
  2. A criação de um grande número de variáveis ​​ou objetos

6. A complexidade da representação da progressiva

  1. T (n) = O (f (n) indica a presença de uma constante C> 0, N [0]> 0 de tal forma que se n> = n têm T (n) <= C * f (N [0] Tempo) (Função limite superior)
  2. O (1) <O (log n) <O (n) <O (nlog n) <O (n ^ 2) <O (n ^ 3) <O (2 ^ n) <O (n!) <Ó (n ^ n)
  3. regra adição complexidade: T . 1 + T 2 = max (O (F . 1 ), O (F 2 ))
  4. Multiplicação complexidade Regra: t . 1 * T 2 = S (F . 1 * F 2 )
  5. Para um tempo de ciclo igual ao número de ciclos multiplicado pela complexidade do circuito a complexidade do código corpo
  6. A complexidade da estrutura-se mais, se as condições de julgamento, dependendo da complexidade e complexidade de ambas as porções de perna, a complexidade total, consoante o que for maior
Lançou dois artigos originais · ganhou elogios 0 · Visualizações 22

Acho que você gosta

Origin blog.csdn.net/Rain_Poplar/article/details/104846264
Recomendado
Clasificación