Leela Krishna
Leela Krishna

Siga

Apr 1, 2019 · 4 min de leitura

em swift linguagem de programação…

Parte -1:

Por que as Estruturas de Dados?

ao criar aplicativos modernos, grande parte da teoria inerente aos algoritmos é frequentemente negligenciada. Para soluções que consomem quantidades relativamente pequenas de dados, decisões sobre técnicas específicas ou padrões de design podem não ser importantes como apenas fazer as coisas funcionarem. No entanto, à medida que o público cresce, os dados também aumentam. Muito do que as grandes empresas de tecnologia têm sucesso é a capacidade de interpretar grandes quantidades de dados. Dar sentido aos dados permite que os usuários se conectem, compartilhem, concluam transações e tomem decisões.

→ Estruturas De Dados :

  • Fundamental(ensino Fundamental) estruturas de dados

Pilha, Fila, Algoritmos de Ordenação

  • Árvores

Árvores & Binárias, Árvores de Busca Binária, Pilha, Heap Sort, Fila de Prioridade

  • Gráficos

Gráficos, Lista de Adjacência, Dijkstra o Algoritmo, De Prim Algoritmo

→ Big O Notation :

Assintótica de análise é o processo de descrever a eficiência de algoritmos, e é normalmente expressa em um formato comum, conhecido como Big O Notation.

  • Complexidade Do Tempo :

a quantidade de tempo para completar o algoritmo(função) à medida que seu tamanho de entrada(n) cresce.

  • complexidade do espaço:

a quantidade de memória (espaço) necessária para que um algoritmo(função) seja executado.

ambos podem ser expressos em notação Big o.

  • a Maioria das Complexidades de Tempo Comum :

→ Constante de Tempo (O(1)) :-

Uma constante de tempo do algoritmo é o que tem o mesmo tempo de execução, independentemente de sua entrada. A notação O Grande para isso é O (1).

→ tempo Linear (o (n)) :-

um algoritmo de tempo linear é o qual sua velocidade depende de seu tamanho de entrada. Em outras palavras, torna-se menos eficiente à medida que seu tamanho de entrada(n) cresce.

→ tempo quadrático (O (n2)) :-

refere-se a um algoritmo que leva tempo ao proporcional ao quadrado do tamanho da entrada. Ele rapidamente fica fora de controle à medida que seu tamanho de entrada aumenta.

→ tempo logarítmico (o (log n)) :-

um algoritmo comum com complexidade de tempo o(log n) é a busca binária cuja relação recursiva é T(n/2) + o(1) ou seja, em cada nível subsequente da árvore, você divide o problema pela metade e faz uma quantidade constante de trabalho adicional.

→ Quasilinear Tempo (O(n log n)) :-

Um algoritmo é dito para ser executado em quasilinear tempo (também conhecido como log-linear de tempo) se T(n) = O(n log^k n) para alguma constante positiva k; linearithmic time é o caso k = 1.

exemplo :

a estrutura de dados é uma maneira sistemática de organizar os dados para usá-los com eficiência. Os Termos a seguir são os termos básicos de uma estrutura de dados.

  • Interface – cada estrutura de dados tem uma interface. Interface representa o conjunto de operações que uma estrutura de dados suporta. Uma interface fornece apenas a lista de operações suportadas, o tipo de parâmetros que podem aceitar e o tipo de retorno dessas operações.Implementação-a implementação fornece a representação interna de uma estrutura de dados. A implementação também fornece a definição dos algoritmos usados nas operações da estrutura de dados.

→ características de uma estrutura de dados:

  • correção-a implementação da estrutura de dados deve implementar sua interface corretamente.
  • complexidade do tempo-o tempo de execução ou o tempo de execução das operações da estrutura de dados devem ser tão pequenos quanto possível.
  • complexidade do espaço-o uso de memória de uma operação de estrutura de dados deve ser o mínimo possível.

→ necessidade de estrutura de dados:

como os aplicativos estão ficando complexos e ricos em dados, existem três problemas comuns que os aplicativos enfrentam hoje em dia.

  1. pesquisa de dados-Considere um inventário de 1 milhão(106) itens de uma loja. Se o aplicativo for pesquisar um item, ele precisará pesquisar um item em 1 milhão(106) de itens toda vez que desacelerar a pesquisa. À medida que os dados crescem, a pesquisa se tornará mais lenta.
  2. Velocidade do processador-a velocidade do processador, embora seja muito alta, fica limitada se os dados aumentarem para bilhões de registros.
  3. várias solicitações – como milhares de usuários podem pesquisar dados simultaneamente em um servidor web, até mesmo o servidor rápido falha ao pesquisar os dados.

para resolver os problemas acima mencionados, as estruturas de dados vêm para resgatar. Os dados podem ser organizados em uma estrutura de dados de tal forma que todos os itens podem não ser necessários para serem pesquisados, e os dados necessários podem ser pesquisados quase que instantaneamente.

→ vamos ver um wrapper de pilha em swift:

criamos um wrapper em torno da matriz do swift, onde usamos a matriz como uma estrutura de armazenamento. As matrizes fornecem inserções e exclusões de tempo constante (O(1)) quando são executadas a partir do final da matriz.

é FIFO → primeiro em dados de primeira saída.

exemplos no iOS : Pilha de uinavigação, desfazer funcionalidades, etc.

Deixe uma resposta

O seu endereço de email não será publicado.