From: Mathieu Desnoyers <mathieu.desnoyers@efficios.com>
To: The development of GNU GRUB <grub-devel@gnu.org>
Subject: Re: [PATCH] grub-mkconfig linux: Fix quadratic algorithm for sorting menu items
Date: Thu, 19 May 2022 16:21:59 -0400 (EDT) [thread overview]
Message-ID: <301997084.62826.1652991719377.JavaMail.zimbra@efficios.com> (raw)
In-Reply-To: <b54eaaa6-5cfd-ec2d-b792-9bbcf9af4578@ionic.de>
----- On May 3, 2022, at 1:15 PM, Mihai Moldovan ionic@ionic.de wrote:
> Just a nit, feel free to ignore it...
>
>
> * On 5/3/22 4:42 PM, Mathieu Desnoyers wrote:
>> How does the following paragraph sound ?
>>
>> ^^^^^^^^
>> Here is the improved algorithm proposed:
>>
>> - Prepare a list with all the relevant information for ordering by a single
>> sort(1) execution. This is done by renaming ".old" suffixes by " 1" and
>> by suffixing all other files with " 2", thus making sure the ".old" entries
>> will follow the non-old entries in reverse-sorted-order.
>> - Call version_reverse_sort on the list (sort -r -V): A single execution of
>> sort(1) will reverse-sort the list in O(n*log(n)) with a merge sort.
>
> This is correct for GNU coreutils's sort, but nothing (I'm mostly thinking of
> SUS/POSIX here) mandates that the sort utility must either use merge sort or
> have O(n*log(n)) time complexity.
>
> Given that you're using version sort, which is a GNU extension, it probably
> can't be anything than GNU sort anyway, though, so the point still holds by
> implicity.
I'm using the same sort already used in version_sort(). It uses sort -V if available,
but there is a fallback to sort if -V is not available. Therefore, nothing implies
a version sort, so nothing implies a GNU extension. So your point about other sort
not necessarily being O(nlog(n)) merge sort is valid. I will remove this statement
from the next patch version commit message.
Thanks,
Mathieu
--
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com
prev parent reply other threads:[~2022-05-19 20:22 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-02 14:14 [PATCH] grub-mkconfig linux: Fix quadratic algorithm for sorting menu items Mathieu Desnoyers
2022-05-03 8:47 ` Paul Menzel
2022-05-03 14:42 ` Mathieu Desnoyers
2022-05-03 14:47 ` Paul Menzel
2022-05-03 17:15 ` Mihai Moldovan
2022-05-04 0:54 ` Oskari Pirhonen
2022-05-04 3:54 ` Mihai Moldovan
2022-05-19 20:21 ` Mathieu Desnoyers [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=301997084.62826.1652991719377.JavaMail.zimbra@efficios.com \
--to=mathieu.desnoyers@efficios.com \
--cc=grub-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.