{
return list->len;
}
+
+/* Selection sort */
+int list_sort(struct list *l, sort_function_t *fn)
+{
+ int i, j;
+ for (i = 0; i < l->len; i++) {
+ int max = i;
+ void *tmp;
+ /* Find index of max value */
+ for (j = i; j < l->len; j++) {
+ if (fn(l->items[j].val, l->items[max].val) < 0)
+ max = j;
+ }
+ /* Swap items */
+ tmp = l->items[max].val;
+ l->items[max].val = l->items[i].val;
+ l->items[i].val = tmp;
+ }
+}