Structures de données et algorithmes (a) - Obtenir les concepts de base

     Structure de données

      Structure de données

A. Concepts de base

  • introduction

       1.1 élément de données (élément de données): est l'unité de base de données et le processus considéré dans son ensemble dans le programme

              Une pluralité d'éléments de données par un élément de données (objet de données) composé de l'élément de données est la plus petite unité de données, l'élément de données est une description des données des caractéristiques d'un aspect des choses objectives.

1.2 Data Objects (Data Object): est une collection d'éléments de données de la même nature, est un sous-ensemble des données.

Structure de données définit un tuple (D, S) D est un ensemble fini d'éléments de données, S est D ensemble fini de données sur la relation

Le concept de base d'une structure de données de 1,3: il y a une ou plusieurs relations entre chaque donnée élément de réglage et l'ensemble des données d' éléments dans la relation entre la composition.

1.3.1 Données structure logique : qui tient compte des données des éléments de la relation logique entre une structure de données , dans lequel la relation logique est la relation entre les éléments de longeron de données, quel que soit leur emplacement stocké dans un ordinateur. Structure logique comprenant:

  1. ensemble

Entre les éléments de structure de données en plus de « appartiennent à un ensemble de » en dehors de la relation, pas d' autres relations;

2. La   structure linéaire

À une corrélation entre les éléments de structure de données;

  1. Structure arbre

Il existe une corrélation dans la plupart des éléments de structure de données;

  1. Structure graphique

Plusieurs à plusieurs existe dans les éléments de structure de données.

       Logiciels = programme + données + documentation

1.3.2 Structure physique de données : un moyen de stockage sous la forme de données de structure logique dans un espace de mémoire de l' ordinateur.  [1] 

La structure physique des données est représenté par une structure de données (connu sous le nom d'une image) dans l'ordinateur, laquelle machine comprend un élément de données représente la relation entre la machine et la Fig. En raison de divers ordres, des liens, l'indexation, tables de hachage et d'autres applications de béton, par conséquent, peut être représentée comme une structure de données stockées dans une ou plusieurs structures.

La relation entre les éléments il y a deux représentations différentes dans un ordinateur: structure de stockage séquentiel et la structure de stockage de la chaîne.

structure séquentielle: les données indiquant la position relative des données dans l'élément de mémoire , la structure logique entre les éléments.

la structure de la chaîne: l'augmentation d'un pointeur d'adresse de stockage à un autre élément de chaque élément de données, la structure logique représentée par les éléments de données entre le pointeur.

Comparaison de deux structures de stockage différentes:

      Structure de séquence - adresse élément de données est stocké dans contigu;

      Structure chaîne - éléments de données stockés dans l'adresse ne doivent pas être contigus.

Dans le C langue, une séquence avec une structure de mémoire de la matrice à une dimension; Structure de stockage représente un corps structurel.

     

1.4 trois composantes de la structure de données:

             Structure logique: relations logiques entre les éléments de données        D_S = (D, S)

             Structure de stockage: élément de stockage de données dans l'exécution de la logique de l'ordinateur et la mémoire ou la structure physique appelé données.

             Fonctionnement des données: manipulation de données.

Et la structure logique de la structure de stockage utilisé:

      1.5 types de données abstraits (Résumé Type de données): Un modèle mathématique et un ensemble d'opérations définies dans le modèle.

      ADT : la réalisation des questions spécifiques.

             ADT est défini comme un ensemble de caractérisation logique

             ADT triples définition formelle: ADT = (D, S, P) D : Les objets de données, S est D ensemble de relations sur, P est D un ensemble de base des opérations.

       1.6 Structure de données de l'opération:

              Créer : pour créer une structure de données

              Destory : l'élimination d'une structure de données

              Les Supprimer : éléments de suppression de données à partir d' une structure de données

              INSERT : l' insertion d' un élément de données à une structure de données

              Accès : l' accès à la structure de données

              Le Modifier : les éléments de la structure de données à modifier         

              Trier : trier la structure de données

              Rechercher : Trouver la structure de données

1.7 algorithme

              Fait référence aux solutions exactes de résolution de problèmes et la description complète, est une série d'instructions claires pour résoudre le problème, l'algorithme représente un mécanisme politique pour résoudre le problème décrit de manière systématique.

              La nature de l'algorithme:

              Finite: l'algorithme a une mauvaise fait référence à la fin de l'algorithme doit être exécuté après un nombre fini d'étapes;

              Incertitude: chaque étape de l'algorithme doit avoir une définition précise;

              Faisabilité: 0 peut avoir des entrées, au moins une sortie, chaque calcul par les temps finis pour compléter

       1.7.1 complexité Temps de l'algorithme

           mesures d'efficacité algorithme :

            Temps d'exécution du temps de programmation basée sur l'algorithme requis par l'algorithme en cours d'exécution sur une métrique d'ordinateur

            T = n ( le nombre d'instructions) * IPC * 1 / cycle d'horloge est déterminé par le nombre d'instructions

            = Durée de chaque instruction du temps d'exécution de l'algorithme.

                Chaque instruction régler le temps d'exécution requis pour une unité de la durée de fonctionnement de l'algorithme est un changement de fréquence de toutes les déclarations et les algorithmes.

            Il y a environ deux types de méthodes:

                Statistiques antérieures: les statistiques et l'espace réel à l'intérieur de l'ordinateur pour effectuer le (projet à grande échelle est pas souhaitable)

                Une analyse préalable: l'obtention d'une fonction de délai de l'algorithme, l'analyse de base de l'ordre de n

              Le nombre d'opérations arithmétiques de base sont effectuées à plusieurs reprises la taille problème n d'une fonction, qui est enregistrée comme une mesure de temps:

T (n) = O (f (n)), une complexité temporelle de l'algorithme progressif fait référence, de la complexité de temps.

              un fonctionnement à fréquence d'exécution de la plus profonde instruction de boucle interne courante initiale représentée

              Représente la complexité moment de la commande sont:

                     O (1): commande de temps constant         O (N): temps linéaire ordre

                     O (logN): commande de temps logarithmique    O (NlogN): Afin de temps logarithmique linéaire

                     O (N ^ k): K > = 2, k ème temps de commande

demo1:

for(i=1;i<=n;i++)
    for(j=1;j<=n;j++) {     
        c[i][j] = 0;  //已经执行了n*n次
        for(k=0;k<=n;k++){     
        c[i][j]+=a[i][j]*b[i][j];       //执行了n*n*n次
    }      //总和:n^3+n^2
}     

Trois cycles de répétition, de 1 à N- , alors le nombre total de fois: . N- * = n-n-n * ^ 3, la complexité temporelle de T (n) = O (n ^ 3);

       Six couramment utilisé pour calculer le temps polynomiale

       O (1) <O (logN) <O (n) <O (NlogN) <O (n ^ 2) <O (n ^ 3)

       Index du temps :

       O (2 ^ n) <O (n!) <O (n ^ n)

       Est un nombre premier est déterminé si: O (n ^ 1/2.) , Et aussi longtemps que 1 ~ n nombres premiers comparaison entre le nombre est n / 2 cycles .

       Calcul rapide:

              Cas 1 La déclaration de base de n indépendant O (1)

              Cas 2 scission Principe n / 2 O (log2n) // log à 2 en tant que substrat

              Cas n ° 3 principe unique , compter n O (n)

              Cas 4 double boucle , fendue principe   O (nlog2n)

              Cas 5 à deux temps                    O (n ^ 2)

       1.7.2 complexité spatiale de l'algorithme

              La complexité Espace : une mesure de la taille de la programmation nécessaire pour faire fonctionner dans un espace de stockage d' un algorithme informatique. Désigné par: S (n) = O (F (n))

       mémoire d'instructions occupé par des variables constantes;

       espace de stockage de données d'entrée occupé;

       Elle se réfère à un algorithme algorithme travail sur place constant espace auxiliaire nécessaire , à savoir, O (1)

       Secondaire ( stockage ) de l' espace.

              la complexité spatiale de l'algorithme se réfère à l'espace auxiliaire.

              Une dimension tableau A [n-] : complexité spatiale en  O (n)

              tableau à deux dimensions [n-] A [m] : complexité spatiale de   O (n * m)

Publié 58 articles originaux · a gagné les éloges 31 · vues 40000 +

Je suppose que tu aimes

Origine blog.csdn.net/qq_37504771/article/details/104261276
conseillé
Classement