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:
- 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;
- Structure arbre
Il existe une corrélation dans la plupart des éléments de structure de données;
- 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)