xqsort.c

00001 /*
00002   Пример использования функций из модуля @qsort.h@
00003   Быстрая сортировка
00004 */
00005 
00006 #include <stdlib>
00007 #include "nl.h"
00008 
00009 int compare(size_t i, size_t j, void* data)
00010 {
00011   if (((int*)data)[i] < ((int*)data)[j])
00012     return -1;
00013   return 1;
00014 }
00015 
00016 void swap(size_t i, size_t j, void* data)
00017 {
00018   int tmp;
00019   tmp = ((int*)data)[i];
00020   ((int*)data)[i] = ((int*)data)[j];
00021   ((int*)data)[j] = tmp;
00022 } 
00023 
00024 int main()
00025 {
00026   size_t j, n;
00027   int* v;
00028 
00029   n = 10;
00030 
00031   v = malloc(n * sizeof(int));
00032 
00033   for (j = 0; j < n; j++) 
00034     v[j] = rand() / 1000;
00035   
00036   printf("\nИсходный массив:\n");
00037   for (j = 0; j < n; j++) 
00038     printf("  %d", v[j]);
00039 
00040   nl_qsort(v, n, compare, swap);
00041   
00042   printf("\nОтсортированный массив:\n");
00043   for (j = 0; j < n; j++) 
00044     printf("  %d", v[j]);
00045 
00046   printf("\n");
00047 
00048   free(v);
00049 
00050   return 0;
00051 }

Документация по NL. Последние изменения: Mon Oct 9 12:25:54 2006. Создано системой  doxygen 1.4.7