Язык Си в примерах/Сортировка: различия между версиями

Содержимое удалено Содержимое добавлено
м <source> -> <syntaxhighlight> (phab:T237267)
Строка 6:
Один из простейших алгоритмов решения — метод «пузырька».
<sourcesyntaxhighlight lang="c">
#include <stdio.h>
#define N 1000
Строка 32:
}
}
</syntaxhighlight>
</source>
 
Понятно, что после первого «пробега» самый большой элемент массива окажется на последнем месте.
Строка 61:
два элемента массива. В нашем случае это
 
<sourcesyntaxhighlight lang="c">
int cmp(const void *a, const void *b) {
return *(int*)a - *(int*)b;
}
</syntaxhighlight>
</source>
 
В силу указанной универсальности функции сортировки, функция сравнения получает в качества аргумента адреса двух блоков, которые нужно сравнить и возвращает 1, 0 или -1:
Строка 79:
Таким образом, мы получили следующую программу
 
<sourcesyntaxhighlight lang="c">
#include <stdio.h>
#include <stdlib.h>
Строка 99:
return 0;
}
</syntaxhighlight>
</source>
 
== Динамическое выделение памяти ==
Строка 105:
Ниже приведена программа, где память под массив выделяется динамически:
 
<sourcesyntaxhighlight lang="c">
#include <stdio.h>
#include <stdlib.h>
Строка 127:
return 0;
}
</syntaxhighlight>
</source>
 
Функция <tt>malloc<tt> (от англ. ''memory allocation'' --- ''выделение памяти'') делает запрос к ядру операционной системы по выделению заданного количества байт. Единственный аргумент этой функции &mdash; число байт, которое вам нужно. В качестве результата функция возвращает указатель на начало выделенной памяти. Указатель на начало выделенной памяти &mbsah — это адрес ячейки памяти, начиная с которого идут N байт, которые вы можете использовать под любые свои нужды. Всю память, которая была выделена с помощью функции <tt>malloc<tt>, нужно освобождать с помощью функции <tt>free</tt>. Аргумент функции <tt>free</tt> — это указатель на начало выделенной когда-то памяти.
 
== Программа упорядочения строк в алфавитном порядке ==
<sourcesyntaxhighlight lang="c">
#include <stdlib.h>
#include <string.h>
Строка 149:
return 0;
}
</syntaxhighlight>
</source>
 
Обратите внимание на сложное приведение типов.