mirror of
https://github.com/openmv/openmv.git
synced 2025-11-04 14:49:50 +08:00
Add array insertion sort.
This commit is contained in:
parent
4d409d57f3
commit
aa2bd8a4e2
@ -158,3 +158,18 @@ void array_sort(array_t *array, array_comp_t comp)
|
||||
quicksort(array->data, array->data + array->index - 1, comp);
|
||||
}
|
||||
}
|
||||
|
||||
void array_isort(array_t *array, array_comp_t comp)
|
||||
{
|
||||
if (array->index > 1) {
|
||||
for (int i = 1; i < array->index; i++) {
|
||||
int j = i-1;
|
||||
void *t = array->data[i];
|
||||
while (j >= 0 && comp(array->data[j], t)) {
|
||||
array->data[j+1] = array->data[j];
|
||||
j--;
|
||||
}
|
||||
array->data[j+1] = t;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -31,4 +31,5 @@ void *array_take(array_t *array, int idx);
|
||||
void array_erase(array_t *array, int idx);
|
||||
void array_resize(array_t *array, int num);
|
||||
void array_sort(array_t *array, array_comp_t comp);
|
||||
void array_isort(array_t *array, array_comp_t comp);
|
||||
#endif //__ARRAY_H__
|
||||
|
||||
Loading…
Reference in New Issue
Block a user