From 34f03f01c898d54b9e095643d9094137c3153738 Mon Sep 17 00:00:00 2001 From: Emmanuel Fleury Date: Tue, 6 Aug 2019 18:33:07 +0200 Subject: [PATCH] Add some notes on complexity in glib/garray.c Related to issue #3 --- glib/garray.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/glib/garray.c b/glib/garray.c index 4d29bc068..3f23b980d 100644 --- a/glib/garray.c +++ b/glib/garray.c @@ -58,17 +58,21 @@ * * To create a new array use g_array_new(). * - * To add elements to an array, use g_array_append_val(), - * g_array_append_vals(), g_array_prepend_val(), g_array_prepend_vals(), - * g_array_insert_val() and g_array_insert_vals(). + * To add elements to an array with a cost of O(n) at worst, use + * g_array_append_val(), g_array_append_vals(), g_array_prepend_val(), + * g_array_prepend_vals(), g_array_insert_val() and g_array_insert_vals(). * - * To access an element of an array (to read it or write it), + * To access an element of an array in O(1) (to read it or to write it), * use g_array_index(). * * To set the size of an array, use g_array_set_size(). * * To free an array, use g_array_unref() or g_array_free(). * + * All the sort functions are internally calling a quick-sort (or similar) + * function with an average cost of O(n log(n)) and a worst case + * cost of O(n^2). + * * Here is an example that stores integers in a #GArray: * |[ * GArray *garray;