00001
00002
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 }