Основные понятия и терминология структур данных, временная сложность алгоритмов

Структура данных: это набор из одного или нескольких конкретных элементов данных, которые существуют между собой.

1. Родственные термины

1. Данные:
Это символ, но эти символы должны иметь две предпосылки: они могут быть введены в компьютер и обработаны компьютером. Например, целое число, реальное, звук, изображение и т. Д.
2. Элементы данных:
Это основная единица, которая составляет данные. Например, элементы данных животных включают кошек и собак.
3. Элементы данных:
Элемент данных может состоять из нескольких элементов данных. Например: у людей есть такие данные, как возраст, рост и вес. ** Элемент данных - это наименьшая единица данных. **
4. Объекты данных:
Это коллекция элементов данных одинаковой природы.

Вставьте описание изображения здесь

2. Структура


1. Логическая структура:
Это связь между элементами данных в объекте данных.
(1) Структура коллекции:
Структура набора состоит в том, что между ними нет других отношений, кроме принадлежности к одному и тому же набору.
Например:

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

Имя, рост и возраст в этой структуре являются совокупной структурой.

(2) Линейная структура
Элементы данных находятся в отношении один к одному

Вставьте описание изображения здесь

(3) Древовидная структура
Элемент данных является многослойным отношением, поэтому не нужно приводить пример. Это дерево, вы знаете это.
(4) Графическая структура
Элементы данных являются отношениями «многие ко многим».
2. Физическая структура
Проще говоря, это как хранить элементы данных в памяти компьютера.
(1) Последовательная структура хранения:
Он предназначен для хранения элементов данных в единицах хранения с последовательными адресами, таких как массивы.
(2) Цепная структура хранения:
Элементы данных могут храниться в любом блоке хранения, но вам нужно использовать указатель для хранения адреса элемента данных.




!!! временная сложность алгоритма

Временная сложность алгоритма - это временная мера алгоритма, записанная в виде: ** T (n) = Of (n) **, где n - некоторая функция от размера задачи n
Метод получения большого О порядка:
(1) Заменить все константы сложения во время работы с константами.
(2) В функции количества прогонов сохраняется только самый высокий элемент.
(3) Если самый высокий член существует и не равен 1, удалите константу, умноженную на этот член.
1, постоянный порядок
Выполняя постоянный алгоритм, мы называем его с O (1) временной сложностью, которая является постоянным порядком. Пример:
int sum = 1,n = 100; //执行一次  ``
sum = (1+n)*n/2; //执行一次  

5> 2. Линейный порядок Чтобы определить порядок алгоритма, вам нужно определить, сколько раз выполнялся конкретный оператор или набор операторов. Поэтому для анализа сложности алгоритма ключевым является анализ работы структуры цикла.

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

Сложность этого кода O (n);

Логарифмический порядок:
int count=1;
while(count<n)
{ 
	count=count*2; 	
	} 

Когда счет каждого цикла продолжает увеличиваться и, наконец, когда счет больше или равен n, выпрыгните из цикла, используя x для представления количества циклов, получите 2 ^ x = n; затем: x = log₂n, то есть f (n) = log₂n, так Временная сложность этого алгоритма составляет O (log2n).

4. Квадратный порядок:
Временная сложность цикла равна сложности тела цикла, умноженной на количество выполнений цикла.
Пример: временная сложность внутреннего цикла - O (n), а внешнего уровня - O (n), тогда общая временная сложность O (n²).
for(int i=0;i<n;i++)
{      
     for(int j=0;j<n;i++)
     {    
        ........   
      }
 }



Общая сложность времени:
Вставьте описание изображения здесь
время, затрачиваемое на общую сложность времени:
Вставьте описание изображения здесь

Опубликовано 10 оригинальных статей · Likes2 · Посещений 217

рекомендация

отblog.csdn.net/dfwef24t5/article/details/105228753