Talk:Sort the letters of string in alphabetical order

From Rosetta Code

how is this sorting different?

How is sorting letter s different from all the other sort tasks?--Nigel Galloway (talk) 16:45, 24 July 2021 (UTC)

Almost all of the other sort tasks are dealing with multiple records (or multiple strings),   or an array   (whose elements are either strings or numbers).   This Rosetta Code task is restricted to sorting one string (of characters, which could include duplicates, blanks, and upper- and lower-cased letters).   I would've preferred a particular string that would be used (in common) for all computer programming languages for this task to make comparison a little easier.     -- Gerard Schildberger (talk) 17:22, 24 July 2021 (UTC)


rename this task ?

Perhaps this (draft) task should be renamed to:     Sort a string of characters
which would   "fit in"   with the nomenclature with other Rosetta Code sorting tasks.     -- Gerard Schildberger (talk) 17:43, 24 July 2021 (UTC)

It certainly needs renaming, or the difference between alphabetical ordering and alphabitical ordering needs explaining!--Nigel Galloway (talk) 19:06, 24 July 2021 (UTC)
Yes, indeed.   I had to re-read your sentence twice:   (alphabetical vs. alphabitical).     -- Gerard Schildberger (talk) 20:07, 24 July 2021 (UTC)
"Sort a string of characters in lexicographical order" with an included link to the wikipedia entry for lexicographical - given the current task description? --Paddy3118 (talk) 08:11, 25 July 2021 (UTC)

task requirements

I suggest that a specified (character) string be used to make computer programming language comparisons easier.     -- Gerard Schildberger (talk) 17:53, 24 July 2021 (UTC)

Charles E. Weller's typing drill   (circa 1912,   used in the REXX entry)   would be a good example.     -- Gerard Schildberger (talk) 18:02, 24 July 2021 (UTC)

The requirement to write a sort routine, even if one comes with your language muddles the language comparisons though unless those languages with the in-built ability show that too. --Paddy3118 (talk) 08:15, 25 July 2021 (UTC)

task usage of   alphabetical order

I suggest that some wording be added to the (draft) task that explains that the phrase   alphabetical order   depends on the hardware system being used.

The   ASCII   order is   (essentially):

                digits, uppercase Latin letters, lowercase Latin letters, with other special characters strewn about. 

The   EBCDIC   order is   (essentially):

                lowercase Latin letters, uppercase Latin letters, digits, with other special characters strewn about.

-- Gerard Schildberger (talk) 17:53, 24 July 2021 (UTC)

ASCII or EBCDIC are both completely immaterial. The task SPECIFICALLY states alphabetical (used to be alphabitical but whatever). In the alphabet, 'N' does not come before 'a' (as most of these example wrongly demonstrate). The task is stupid and should be removed. But if we insist on keeping it, the examples should at least follow the actual task title / description. Or, the title / description should be changed to what the task is actually demonstrating. --Thundergnat (talk) 13:13, 26 July 2021 (UTC)
Not completely immaterial. An alphabet is an ordered set of symbols, which children learn during early learning. The task should specify the alphabet and its ordering. perhaps using a non-English alphabet such that not only the order of N n and a n have to be considered but also à á â ä æ ã å and there capitalized partners. I suggest 3 ways of ordering the symbols on a computer: 1) Form a bijection between the symbols and a subset of the set of integers, and sort the integers. ASCII and EBCDIC are such bijections, but may not produce the required result. 2) Write the alphabet as a list, given 2 symbols search through the list and return the one found first as the smaller. 3) Build the alphabet as a binary tree.--Nigel Galloway (talk) 14:44, 26 July 2021 (UTC)
<pedantic-mode: on;> COMPLETELY immaterial. Neither is an alphabet. True, the task doesn't specify which alphabet to use, but neither of those are one. As for not using a sort, the task specifically requires writing a routine to sort. In what way could you interpret that to mean you don't need to sort? Yes, yes, I agree, you don't need to sort to get the end result required by the task, but it is pretty clear "Write a sort function, don't just use a built-in" requires there to be some kind of sort involved. <pedantic-mode: off;> --Thundergnat (talk) 14:59, 26 July 2021 (UTC)
I'll see your pedantic and raise you one. Like most I misread it. The task states you must create a routine, but does not stipulate that cannot be a one-liner to some builtin or other. Or even what the output should be. Not that I much care ;-) --Pete Lomax (talk) 17:18, 26 July 2021 (UTC)
The task title and description are currently at odds with each other. The former says sort in alphabetical order and the latter in lexicographical order. Given that we have example strings containing both upper and lower case letters and non-letters, lexicographical order seems the most appropriate to me and I therefore agree with Paddy3118's suggested title change above. --PureFox (talk) 15:48, 26 July 2021 (UTC)
Oh what brittle minds we have. It wuz you wot introduced that discrepancy... ;-) --Pete Lomax (talk) 17:18, 26 July 2021 (UTC)

For this task it is not necessary to perform a sort!

Given the alphabet as an ordered list of characters. Pass through the string once counting the number of occurrences of each character. Pass through the alphabet once outputting the corresponding character the appropriate number of times.--Nigel Galloway (talk) 14:44, 26 July 2021 (UTC)

Fair point but (not that this task merits such attention to detail) I wonder what the output of "baNAnaBAnaNA" should be...
Just to be awkward, I'm going with "aAaAaAbBNnnN". --Pete Lomax (talk) 16:26, 26 July 2021 (UTC)

Slacksort

Would anyone be interested to see the Slacksort method developed further and added to the existing sort block of tasks? It may be too trivial, but it does offer some versatility. Asking ahead of time, in case it is undesirable to clutter up the site. Perhaps the algorithm goes by another name and is already there. --Enter your username (talk) 16:19, 25 July 2021 (UTC)

I might suggest your Slacksort is a variant of Sorting_algorithms/Selection_sort except that one inefficiency of the latter is it can make multiple passes down the rest of the array in order to obtain the same minimum value, whereas one inefficiency of the former is it can will make multiple passes down the entire array that achieve nothing.
Plus as written it does not appear it can actually be used as a sort method, as in s := Slacksort(s), and is integer/char-only. --Pete Lomax (talk) 20:15, 25 July 2021 (UTC)