Introdução aos pontos de aprendizagem da estrutura de dados

Visão geral

Este capítulo apresenta os conceitos básicos de estruturas de dados e algoritmos, bem como os métodos básicos de análise de algoritmos, que são a base para o aprendizado dos capítulos subsequentes. A estrutura organizacional dos pontos de conhecimento neste capítulo é mostrada na figura abaixo:
Insira a descrição da imagem aqui

Pontos-chave / dificuldades / pontos

O foco deste capítulo é :

  1. Conceitos básicos de estrutura de dados;
  2. A estrutura lógica dos dados, estrutura de armazenamento e a relação entre os dois;
  3. Algoritmos e características;
  4. Representação de uma grande marca 0.

A dificuldade deste capítulo é :

  1. Definição e uso de tipos de dados abstratos;
  2. Análise da complexidade do tempo do algoritmo.

Este capítulo compreenderá duas linhas principais: uma linha principal é a estrutura de dados, incluindo o objeto de pesquisa da estrutura de dados e conceitos relacionados, e a outra linha principal é o algoritmo, incluindo conceitos relacionados a algoritmos, métodos de descrição e métodos de análise de complexidade de tempo.
Na parte da estrutura de dados , comece com o processo de solução do problema e entenda "estrutura de dados + algoritmo = programa"; preste atenção à relação entre a estrutura de dados e o design do programa. O conceito central da parte da estrutura de dados é o elemento de dados, preste atenção à relação entre os elementos de dados por meio de exemplos específicos; o conceito importante da parte da estrutura de dados é a estrutura de dados, devemos compreender dois aspectos: estrutura lógica e estrutura de armazenamento, e prestar atenção para compreender os dois O relacionamento entre.
Na parte do algoritmo , o conceito e as características do algoritmo devem ser os pontos básicos, e as características do algoritmo da aplicação devem ser atentadas no ensino futuro. Não aprenda o conceito isoladamente, preste atenção à extensão e aplicação do conceito; para a análise do desempenho do algoritmo ao longo do tempo, preste atenção Enfocando a taxa de crescimento, ou seja, a ordem de magnitude do número de execuções da instrução básica, três pontos-chave são enfatizados: instrução básica, número de execuções e ordem de magnitude. O resultado da análise de desempenho do algoritmo é a ordem de magnitude representada pela notação grande O.
Por fim, destaca-se que a estrutura de dados e a análise de algoritmos são todas voltadas para grandes quantidades de dados, ou seja, a organização de grandes quantidades de dados e a eficiência do processamento de grandes quantidades de dados. Com o aumento da velocidade de computação do computador, a demanda por programas rápidos que podem lidar com grandes quantidades de dados tornou-se cada vez mais forte.

Pontos de conhecimento

  1. O processo geral de design de programa é "pergunta → ideia → algoritmo → programa", e sua essência é a representação e processamento de dados. A principal tarefa da representação de dados é abstrair o modelo de dados do problema e converter o modelo da representação externa do computador para a representação interna do computador; a principal tarefa do processamento de dados é abstrair a descrição do método de resolução de problemas, ou seja, projetar o algoritmo.
  2. A estrutura de dados é o assunto do estudo dos objetos operacionais dos computadores em problemas não numéricos e seus relacionamentos e operações.
  3. Elemento de dados é a unidade básica de dados, que geralmente é considerada e processada como um todo em programas de computador. O elemento de dados é a menor unidade de dados envolvida na discussão da estrutura de dados, e o item de dados geralmente não é considerado.
  4. A estrutura de dados refere-se a uma coleção de elementos de dados que têm um certo relacionamento entre si. De acordo com diferentes pontos de vista, a estrutura de dados é dividida em estrutura lógica e estrutura de armazenamento. A estrutura lógica dos dados se refere ao relacionamento lógico geral entre os elementos dos dados, e a estrutura de armazenamento dos dados é a representação dos dados e sua estrutura lógica em um computador.
  5. De acordo com as diferentes relações lógicas entre os elementos de dados, as estruturas de dados são divididas em quatro categorias: coleções, estruturas lineares, estruturas em árvore e estruturas de gráfico.
  6. A estrutura de dados geralmente tem dois métodos de armazenamento: estrutura de armazenamento sequencial e estrutura de armazenamento vinculada.
  7. Um tipo de dados abstrato é um termo geral para um modelo de dados (ou seja, uma estrutura de dados) e um conjunto de operações definidas na estrutura.
  8. Um algoritmo é uma descrição das etapas para resolver um problema específico, uma sequência finita de instruções. Os algoritmos devem atender às seguintes cinco características importantes: entrada, saída, finitude, certeza e viabilidade.
  9. Além de satisfazer as cinco características do algoritmo, um algoritmo "bom" também possui as seguintes características: correção, robustez, simplicidade, hierarquia abstrata e eficiência.
  10. Os métodos comumente usados ​​para descrever algoritmos incluem linguagem natural, fluxogramas, linguagens de programação, pseudocódigo, etc. Entre eles, o pseudocódigo é um método mais apropriado para descrever algoritmos, que é chamado de "linguagem de algoritmo" ou "primeira linguagem".
  11. Existem dois métodos para medir a eficiência de um algoritmo: métodos pós-estatísticos e métodos de pré-análise e estimativa.
  12. Deixando de lado os fatores relacionados a software e hardware de computador, o fator mais importante que afeta o custo de tempo do algoritmo é a escala do problema. A escala do problema refere-se à quantidade de input, geralmente pode ser obtida a partir da descrição do problema.
  13. Para refletir objetivamente o tempo de execução de um algoritmo, o número de execuções das sentenças básicas no algoritmo pode ser usado para medir a carga de trabalho do algoritmo. A instrução básica é uma instrução cujos tempos de execução são proporcionais aos tempos de execução de todo o algoritmo.
  14. A complexidade do tempo é geralmente representada pela notação grande O, este método é na verdade um método de estimativa.
  15. Uma maneira simples de resolver a complexidade de tempo do algoritmo é encontrar a sentença com mais tempos de execução entre todas as sentenças como a sentença básica, calcular a ordem de magnitude dos tempos de execução da sentença básica e colocá-la na notação O grande.

Exercício

Abstração e programação de problemas
A maneira de se comunicar efetivamente entre humanos e computadores é (A).
A. Programa B. Linguagem C. Declaração D. Algoritmo
A chave para o design do programa é (C).
A. Estrutura de dados e algoritmo B. Representação de dados e processamento de dados CA e B são
todos sobre a organização de dados e processamento de todas as questões discutidas neste curso. (×)
O pensamento usado no processo de design do programa é (D).
A. Pensamento lógico B. Pensamento abstrato C. Pensamento de imagem D. Pensamento computacional

Conceitos básicos de estrutura de dados A estrutura
lógica não tem nada a ver com o conteúdo e a forma do elemento de dados em si. (√)
A realização de operações básicas com base em uma certa estrutura lógica é única. (×) Em
teoria, a estrutura de armazenamento não tem nada a ver com a linguagem de programação. (×)
O foco ao discutir a estrutura de dados é (B).
A. Dados B. Elemento de dados C. Objeto de dados D. Item de
dados Os dados processados ​​pelo compilador são (C).
A. Linguagem B. Declaração C. Programa fonte D. String
De acordo com diferentes pontos de vista, a estrutura de dados é dividida em estrutura lógica e estrutura de armazenamento, e o ponto de vista se refere a (A).
A. Memória B. Armazenamento externo C. Arquivo D. Problema

Conceitos básicos de algoritmos Os
fluxogramas são o método mais comumente usado para descrever algoritmos. (×)
Como as linguagens de programação, o pseudocódigo também possui padrões internacionais. (×)
O determinismo do algoritmo requer que para a mesma entrada, a mesma saída seja obtida. (√) O
algoritmo deve satisfazer a correção, caso contrário, não há valor de existência. (×)
(D) é chamado de "linguagem de algoritmo".
A. Linguagem natural B. Fluxograma C. Linguagem de programação D. Pseudo código

Análise do algoritmo
A complexidade de tempo do algoritmo é determinada pelo número de execuções das sentenças básicas no algoritmo. (×)
A complexidade de tempo do algoritmo é um cálculo preciso dos recursos consumidos pelo algoritmo. (×)
A complexidade do espaço de um algoritmo refere-se ao espaço ocupado pelos dados de entrada / saída e o espaço auxiliar para a execução do algoritmo. (×)
Algoritmo in-situ ou algoritmo in-situ significa que o algoritmo não requer espaço auxiliar durante a execução. (×) No
segmento seguinte do programa, a escala do problema é (H), a sentença básica é (C) e a complexidade do tempo é (G).
A. (1)
B. (2)
C. (3)
D. (4)
EO ( n 2 n ^ 2n2 )
FO (M 2 M ^ 2M2 )
GO (m × n)
HO (m × n / 2)

(1)for(i=0;i<m;i++)
{
    
    
(2)	for(j=0;j<n/2;j++)
(3)		cout<<data[i][j]; 
(4)	cout<<endl;
}

Referência: "Estrutura de dados (do conceito à implementação C ++)" Tsinghua University Press, Wang Hongmei

Acho que você gosta

Origin blog.csdn.net/oldmao_2001/article/details/109045357
Recomendado
Clasificación