Go to the source code of this file.
|
#define | AV_QSORT(p, num, type, cmp) |
| Quicksort This sort is fast, and fully inplace but not stable and it is possible to construct input that requires O(n^2) time but this is very unlikely to happen with non constructed input. More...
|
|
#define | AV_MSORT(p, tmp, num, type, cmp) |
| Merge sort, this sort requires a temporary buffer and is stable, its worst case time is O(n log n) More...
|
|
#define AV_QSORT |
( |
|
p, |
|
|
|
num, |
|
|
|
type, |
|
|
|
cmp |
|
) |
| |
Quicksort This sort is fast, and fully inplace but not stable and it is possible to construct input that requires O(n^2) time but this is very unlikely to happen with non constructed input.
Definition at line 30 of file qsort.h.
#define AV_MSORT |
( |
|
p, |
|
|
|
tmp, |
|
|
|
num, |
|
|
|
type, |
|
|
|
cmp |
|
) |
| |
Value:{\
for(step=1; step<(num); step+=step){
\
for(i=0; i<(num); i+=2*step){\
unsigned
a[2] = {i, i+step};\
for(j=i; a[0]<i+step && a[1]<
end; j++){\
int idx=
cmp(p+a[0], p+a[1]) > 0;\
tmp[j] = p[ a[idx]++ ];\
if(a[0]>=i+step) a[0] = a[1];\
tmp[j] = p[ a[0]++ ];\
}\
}\
}
if((e=av_dict_get(options,"", NULL, AV_DICT_IGNORE_SUFFIX)))
static av_cold int end(AVCodecContext *avctx)
#define FFSWAP(type, a, b)
static av_always_inline int cmp(MpegEncContext *s, const int x, const int y, const int subx, const int suby, const int size, const int h, int ref_index, int src_index, me_cmp_func cmp_func, me_cmp_func chroma_cmp_func, const int flags)
compares a block (either a full macroblock or a partition thereof) against a proposed motion-compensa...
Merge sort, this sort requires a temporary buffer and is stable, its worst case time is O(n log n)
- Parameters
-
p | must be a lvalue pointer, this function may exchange it with tmp |
tmp | must be a lvalue pointer, this function may exchange it with p |
Definition at line 100 of file qsort.h.