C эквивалентно Arrays.sort из Java - qsort? (Как мне найти природу его реализации) - PullRequest
1 голос
/ 11 июня 2009

Я довольно новичок в языке программирования C, но я знаю, что он не стандартизирован так же, как Java.

При выполнении сравнения времени выполнения алгоритма, чтобы сохранить справедливость анализа, мне нужно вызвать метод, похожий на Java Array.sort (int []).

void qsort(void *base, size_t nmemb, size_t size, int (*compar)(const void *, const void *));

Кажется, это моя лучшая ставка, но мне было интересно, как мне найти бэкэнд-реализацию для версии C, к которой я компилирую.

Как узнать, какую реализацию я использую? Это зависит от компилятора или включений? Я запускаю Ubuntu и использую компилятор gcc, все мои инструменты получены через менеджер пакетов synaptic или установлены по умолчанию.

Надеюсь, этот вопрос имеет смысл!

С уважением,

Gavin

Ответы [ 6 ]

6 голосов
/ 11 июня 2009

Run

man qsort

Это дает описание того, что делает qsort. Когда вам нужно узнать информацию о функции C XXX, попробуйте сначала выполнить man XXX. Затем, если информации недостаточно, выполните поиск XXX в Google.

3 голосов
/ 11 июня 2009

qsort является частью стандартной библиотеки C, поэтому может помочь просмотр кода libc: http://www.google.com/codesearch/p?hl=en#XAzRy8oK4zA/libc/stdlib/qsort.c&q=qsort

Надеюсь, это поможет, Влад

2 голосов
/ 11 июня 2009

Я довольно новичок в программировании на C язык, но я знаю, что это не так стандартизирован так же, как и Java.

Напротив, C сильно стандартизирован. С 1989 года существует стандарт ANSI / ISO для C.

1 голос
/ 11 июня 2009

Пол Се представил очень быструю быструю сортировку в сортировочном сравнении
Числовые рецепты в C имеет отличную быструю сортировку

0 голосов
/ 11 июня 2009

Какая реализация вы получите, зависит от используемой вами библиотеки libc. Но вам не нужно заботиться об этом слишком сильно, все они должны вести себя одинаково.

0 голосов
/ 11 июня 2009

qsort - это стандартная библиотечная функция C.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...