Sort a list of object identifiers: Difference between revisions

Task description: Improve formatting, wording, and be explicit about the specification
(→‎{{header|Perl 6}}: add shorter solution)
(Task description: Improve formatting, wording, and be explicit about the specification)
Line 1:
{{draft task}}
 
[[wp:Object identifier|Object identifiers (OID)]] are strings used to identify objects in network data.
;Task:
Sort by OID numbers.
 
{{task heading}}
OID - Object Identifiers are used in Network data'
<br>These numbers can vary in length, and have a dot "." between them.
<br>The individual number can be of different number of digits also.
 
Show how to sort a list of OIDs naturally.
 
{{task heading|Details}}
;Example:
<pre>
======================================
INPUT
 
* An OID consists of one or more non-negative integers in base 10, separated by dots.
@arrayOID =
* Their natural sort order is [[wp:Lexicographical|lexicographical]] with regard to the dot-separated fields, using numeric comparison between fields.
(
".1.3.6.1.4.1.11.2.17.19.3.4.0.10",
".1.3.6.1.4.1.11150.3.4.0.2",
".1.3.6.1.4.1.11.2.17.19.3.4.0.19",
".1.3.6.1.4.1.11150.3.4.0.1",
".1.3.6.1.4.1.11.2.17.19.3.4.0.22",
".1.3.6.1.4.1.11.2.17.19.3.4.0.2",
".1.3.6.1.4.1.11150.3.4.0.11",
".1.3.6.1.4.1.11.2.17.19.3.4.0.1",
".1.3.6.1.4.1.11.2.17.3773.0.2",
".1.3.6.1.4.1.11.2.17.19.2.0.79",
".1.3.6.1.4.1.11150.3.4.0.21",
".1.3.6.1.4.1.11.2.17.19.2.0.9",
".1.3.6.1.4.1.11.2.17.19.3.4.0.25",
".1.3.6.1.4.1.11.2.17.19.3.4.0.32",
".1.3.6.1.4.1.11.2.17.19.3.4.0.4",
".1.3.6.1.4.1.11.2.17.19.3.4.0.31",
".1.3.6.1.4.1.11.2.17.19.3.4.0.3",
".1.3.6.1.4.1.11.2.17.3773.0.1"
);
 
{{task heading|Test case}}
========================================
OUTPUT - Correctly Sorted
 
{| class="wikitable"
# 01 | .1.3.6.1.4.1.11.2.17.19.2.0.9 |
|-
# 02 | .1.3.6.1.4.1.11.2.17.19.2.0.79 |
! Input ''(list of strings)''
# 03 | .1.3.6.1.4.1.11.2.17.19.3.4.0.1 |
! Output ''(list of strings)''
# 04 | .1.3.6.1.4.1.11.2.17.19.3.4.0.2 |
|-
# 05 | .1.3.6.1.4.1.11.2.17.19.3.4.0.3 |
|
# 06 | .1.3.6.1.4.1.11.2.17.19.3.4.0.4 |
# 07 | <code>.1.3.6.1.4.1.11.2.17.19.3.4.0.10 |</code><br>
# 08 | <code>.1.3.6.1.4.1.11.2.17.1911150.3.4.0.19 |2</code><br>
# 09 | <code>.1.3.6.1.4.1.11.2.17.19.3.4.0.22 |19</code><br>
# 10 | <code>.1.3.6.1.4.1.11.2.17.1911150.3.4.0.25 |1</code><br>
# 11 | <code>.1.3.6.1.4.1.11.2.17.19.3.4.0.31 |22</code><br>
# 12 | <code>.1.3.6.1.4.1.11.2.17.19.3.4.0.32 |2</code><br>
# 13 | <code>.1.3.6.1.4.1.1111150.23.17.37734.0.1 |11</code><br>
# 14 | <code>.1.3.6.1.4.1.11.2.17.377319.3.4.0.2 |1</code><br>
# 15 | <code>.1.3.6.1.4.1.1115011.32.417.3773.0.1 |2</code><br>
# 16 | <code>.1.3.6.1.4.1.1115011.32.417.019.2 |.0.79</code><br>
# 17 | <code>.1.3.6.1.4.1.11150.3.4.0.11 |21</code><br>
# 18 | <code>.1.3.6.1.4.1.1115011.32.417.19.2.0.21 |9</code><br>
"<code>.1.3.6.1.4.1.11.2.17.19.3.4.0.25",</code><br>
</pre>
"<code>.1.3.6.1.4.1.11.2.17.19.3.4.0.32",</code><br>
<br><br>
"<code>.1.3.6.1.4.1.11.2.17.19.3.4.0.4",</code><br>
"<code>.1.3.6.1.4.1.11.2.17.19.3.4.0.31",</code><br>
"<code>.1.3.6.1.4.1.11.2.17.19.3.4.0.3",</code><br>
"<code>.1.3.6.1.4.1.11.2.17.3773.0.1"</code><br>
|
"<code>.1.3.6.1.4.1.11.2.17.19.2.0.9",</code><br>
"<code>.1.3.6.1.4.1.11.2.17.19.2.0.79",</code><br>
"<code>.1.3.6.1.4.1.11.2.17.19.3.4.0.1",</code><br>
"<code>.1.3.6.1.4.1.11.2.17.19.3.4.0.2",</code><br>
# 01 | <code>.1.3.6.1.4.1.11.2.17.19.23.4.0.9 |3</code><br>
# 02 | <code>.1.3.6.1.4.1.11.2.17.19.23.4.0.79 |4</code><br>
"<code>.1.3.6.1.4.1.11.2.17.19.3.4.0.10",</code><br>
"<code>.1.3.6.1.4.1.11.2.17.19.3.4.0.19",</code><br>
"<code>.1.3.6.1.4.1.11.2.17.19.3.4.0.22",</code><br>
# 03 | <code>.1.3.6.1.4.1.11.2.17.19.3.4.0.1 |25</code><br>
# 04 | <code>.1.3.6.1.4.1.11.2.17.19.3.4.0.2 |31</code><br>
# 05 | <code>.1.3.6.1.4.1.11.2.17.19.3.4.0.3 |32</code><br>
# 06 | <code>.1.3.6.1.4.1.11.2.17.19.3.43773.0.4 |1</code><br>
"<code>.1.3.6.1.4.1.11.2.17.3773.0.2",</code><br>
"<code>.1.3.6.1.4.1.11150.3.4.0.1",</code><br>
"<code>.1.3.6.1.4.1.11150.3.4.0.2",</code><br>
"<code>.1.3.6.1.4.1.11150.3.4.0.11",</code><br>
"<code>.1.3.6.1.4.1.11150.3.4.0.21",</code><br>
|}
 
{{task heading|Related tasks}}
 
* [[Natural sorting]]
 
<hr>
 
=={{header|C++}}==
Anonymous user