Concepts de base et terminologie des structures de données, complexité temporelle des algorithmes

!!! Structure des données: C'est une collection d'un ou plusieurs éléments de données spécifiques qui existent entre eux.

1. Termes associés

1. Données:
C'est le symbole, mais ces symboles doivent avoir deux prémisses: ils peuvent être entrés dans l'ordinateur et traités par l'ordinateur. Tels que entier, réel, son, image, etc.
2. Éléments de données:
C'est l'unité de base qui compose les données. Par exemple, les éléments de données des animaux incluent les chats et les chiens.
3. Éléments de données:
Un élément de données peut être composé de plusieurs éléments de données. Par exemple: les gens ont des données telles que l'âge, la taille et le poids. ** L'élément de données est la plus petite unité de données. **
4. Objets de données:
Il s'agit d'une collection d'éléments de données de même nature.

Insérez la description de l'image ici

2. Structure


1. Structure logique:
Il s'agit de la relation entre les éléments de données dans l'objet de données.
(1) Structure de la collection:
La structure d'ensemble est qu'il n'y a aucune autre relation entre eux, sauf qu'ils appartiennent au même ensemble.
Par exemple:

typedef struct person
{
 char name[10];      //名 
 int  year;   //年龄
float tall;  //身高    
 
}user;

Le nom, la taille et l'âge dans cette structure sont la structure agrégée.

(2) Structure linéaire
Les éléments de données sont dans une relation un à un

Insérez la description de l'image ici

(3) Structure arborescente
L'élément de données est une relation à plusieurs niveaux, il n'est donc pas nécessaire de donner un exemple. C'est un arbre, vous le savez.
(4) Structure graphique
Les éléments de données sont des relations plusieurs-à-plusieurs.
2. Structure physique
Autrement dit, c'est comment stocker des éléments de données dans la mémoire de l'ordinateur.
(1) Structure de stockage séquentielle:
Il s'agit de stocker des éléments de données dans des unités de stockage avec des adresses consécutives, telles que des tableaux.
(2) Structure de stockage en chaîne:
Les éléments de données peuvent être stockés dans n'importe quelle unité de stockage, mais vous devez utiliser un pointeur pour stocker l'adresse de l'élément de données.




!!! La complexité temporelle de l'algorithme

La complexité temporelle de l'algorithme est la mesure temporelle de l'algorithme, écrite comme: ** T (n) = Of (n) ** où n est une fonction de la taille du problème n
La méthode pour dériver le grand ordre O:
(1) Remplacez toutes les constantes d'addition du temps d'exécution par des constantes.
(2) En fonction du nombre de passages, seul l'élément le plus élevé est conservé.
(3) Si le terme le plus élevé existe et n'est pas 1, supprimez la constante multipliée par ce terme.
1, ordre constant
En effectuant un algorithme constant, nous l'appelons avec une complexité temporelle O (1), qui est un ordre constant. Exemple:
int sum = 1,n = 100; //执行一次  ``
sum = (1+n)*n/2; //执行一次  

5> 2. Ordre linéaire Pour déterminer l'ordre d'un algorithme, vous devez déterminer le nombre d'exécutions d'une instruction ou d'un ensemble d'instructions particulier. Par conséquent, pour analyser la complexité de l'algorithme, la clé est d'analyser le fonctionnement de la structure de boucle.

int sum=0;
for(int i=0;i<n;i++)
{
    sum=sum+i
}

La complexité de ce code est O (n);

Ordre logarithmique:
int count=1;
while(count<n)
{ 
	count=count*2; 	
	} 

Lorsque le nombre de chaque cycle continue d'augmenter, et enfin lorsque le nombre est supérieur ou égal à n sauter hors de la boucle, en utilisant x pour représenter le nombre de cycles, obtenez 2 ^ x = n; La complexité temporelle de cet algorithme est O (log2n).

4. Commande carrée:
La complexité temporelle de la boucle est égale à la complexité du corps de boucle multipliée par le nombre d'exécutions de la boucle.
Exemple: La complexité temporelle de la boucle interne est O (n) et la couche externe est O (n), alors la complexité temporelle totale est O (n²).
for(int i=0;i<n;i++)
{      
     for(int j=0;j<n;i++)
     {    
        ........   
      }
 }



Complexité temporelle commune:
Insérez la description de l'image ici
Le temps consommé par la complexité temporelle commune est:
Insérez la description de l'image ici

10 articles originaux publiés · Likes2 · Visites 217

Je suppose que tu aimes

Origine blog.csdn.net/dfwef24t5/article/details/105228753
conseillé
Classement