From 20e5016bb01dc62b5951eb2eabc356487e327c7b Mon Sep 17 00:00:00 2001 From: paladin-t Date: Tue, 2 Feb 2016 10:53:28 +0800 Subject: [PATCH] *optimized list sorting function by using merge sorting. --- HISTORY | 3 ++ core/my_basic.c | 92 +++++++++++++++++++++++++++++++++++++------- output/my_basic.exe | Bin 358400 -> 358912 bytes 3 files changed, 81 insertions(+), 14 deletions(-) diff --git a/HISTORY b/HISTORY index 99448c6..509865c 100755 --- a/HISTORY +++ b/HISTORY @@ -1,3 +1,6 @@ +Feb. 2 2016 +Optimized list sorting function by using merge sorting + Jan. 31 2016 Ignored first frame name with the TRACE command diff --git a/core/my_basic.c b/core/my_basic.c index 4bd6ce7..33c0384 100755 --- a/core/my_basic.c +++ b/core/my_basic.c @@ -2152,25 +2152,88 @@ unsigned int _ls_foreach(_ls_node_t* list, _ls_operation op) { } _ls_node_t* _ls_sort(_ls_node_t** list, _ls_compare cmp) { - _ls_node_t* ptr = 0; + /* Copyright 2001 Simon Tatham, http://www.chiark.greenend.org.uk/~sgtatham/algorithms/listsort.c */ + bool_t is_circular = false, is_double = false; + _ls_node_t* p, * q, * e, * tail, * oldhead; + int insize, nmerges, psize, qsize, i; _ls_node_t* lst = 0; - void* tmp = 0; mb_assert(list && cmp); lst = *list; - lst = lst->next; - for( ; lst; lst = lst->next) { - for(ptr = lst; ptr; ptr = ptr->next) { - if(cmp(lst->data, ptr->data) > 0) { - tmp = ptr->data; - ptr->data = lst->data; - lst->data = tmp; - } - } - } + if(lst) lst = lst->next; - return *list; + if(!lst) + return 0; + + insize = 1; + + while(1) { + p = lst; + oldhead = lst; + lst = 0; + tail = 0; + + nmerges = 0; + + while(p) { + nmerges++; + q = p; + psize = 0; + for(i = 0; i < insize; i++) { + psize++; + if(is_circular) + q = (q->next == oldhead ? 0 : q->next); + else + q = q->next; + if(!q) break; + } + + qsize = insize; + + while(psize > 0 || (qsize > 0 && q)) { + if(psize == 0) { + e = q; q = q->next; qsize--; + if(is_circular && q == oldhead) q = 0; + } else if(qsize == 0 || !q) { + e = p; p = p->next; psize--; + if(is_circular && p == oldhead) p = 0; + } else if(cmp(p->data, q->data) <= 0) { + e = p; p = p->next; psize--; + if(is_circular && p == oldhead) p = 0; + } else { + e = q; q = q->next; qsize--; + if(is_circular && q == oldhead) q = 0; + } + + if(tail) + tail->next = e; + else + lst = e; + if(is_double) + e->prev = tail; + tail = e; + } + + p = q; + } + if(is_circular) { + tail->next = lst; + if(is_double) + lst->prev = tail; + } else { + tail->next = 0; + } + + if(nmerges <= 1) { + (*list)->next = lst; + (*list)->prev = tail; + + return *list; + } + + insize *= 2; + } } int _ls_count(_ls_node_t* list) { @@ -2712,7 +2775,8 @@ char* mb_strupr(char* s) { /** Unicode handling */ #ifdef MB_ENABLE_UNICODE int mb_uu_ischar(char* ch) { - /* Determine whether a buffer is a UTF8 encoded character, and return _TAKEn bytes */ + /* Copyright 2008-2009 Bjoern Hoehrmann, http://bjoern.hoehrmann.de/utf-8/decoder/dfa/ */ + /* Determine whether a buffer is a UTF8 encoded character, and return taken bytes */ #define _TAKE(__ch, __c, __r) do { __c = *__ch++; __r++; } while(0) #define _COPY(__ch, __c, __r, __cp) do { _TAKE(__ch, __c, __r); __cp = (__cp << 6) | ((unsigned char)__c & 0x3Fu); } while(0) #define _TRANS(__m, __cp, __g) do { __cp &= ((__g[(unsigned char)c] & __m) != 0); } while(0) diff --git a/output/my_basic.exe b/output/my_basic.exe index ba0d5c6761ca31fb4e3e8fd2d3f4596228492307..d4f33aa35e8d7f442d206638ed48b75b63badbbf 100755 GIT binary patch delta 38665 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 delta 38320 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 aBe;f0YN^=YW{q?P;}^Rgdi42pT;w0Z{tBJ|