解説
「昇順」(ascending order、ASCの略号で書かれることもある)は、小さい値から順に並べた整列方法です。
「降順」(descending order、DESCの略号で書かれることもある)は、大きい値から順に並べた整列方法です。
プログラムのソートでは、さまざまな値を順に並べます。数値のソートでは、数値を比較して並べ換えることができますが、文字列では他の方法が必要になります。
よくある方法は、1文字目から順に、文字コードやコードポイントといった文字に対応する数値を比較することです。1文字目が同じ場合は2文字目、2文字目が同じ場合は3文字目と、順に比較していくことで、並び順を決定します。
(コードポイントは、Unicode などで文字を表現するために割り当てられた番号のことです。UTF-8などの文字コードでは、この値をもとに文字コードの値を決めています)
また、こうした単純な数値ではなく、その国の文化に依存した辞書の並び順に近づける方法もよく見られます。OSのファイルのソートでは、文字コードの順番ではなく、より辞書に近い順番でファイルを並べ換えます。
サンプル
「昇順と降順」のサンプルです。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>「昇順と降順」のサンプル</title>
<style> #output { font-size: 32px; line-height: 1.5; } </style>
</head>
<body>
<pre id="output"></pre>
<script>
window.addEventListener('DOMContentLoaded', e => {
// 出力用の関数
const print = function() {
const el = document.querySelector('#output');
el.textContent += Array.from(arguments).join(':') + '\n';
};
let array;
print('数値でソート 昇順');
array = ['1', '23', '123', '5', '99'];
print('前', array);
array.sort((a, b) => a - b);
print('後', array);
print('');
print('数値でソート 降順');
array = ['1', '23', '123', '5', '99'];
print('前', array);
array.sort((a, b) => b - a);
print('後', array);
print('');
print('文字のコードポイントでソート 昇順');
array = ['1', '23', '123', '5', '99'];
print('前', array);
array.sort();
print('後', array);
print('');
print('');
print('文字のコードポイントでソート 昇順');
array = ['あか', 'いか', 'イカ', 'アカ', 'アイ', 'あい'];
print('前', array);
array.sort();
print('後', array);
print('');
print('言語による並び順でソート 昇順');
array = ['あか', 'いか', 'イカ', 'アカ', 'アイ', 'あい'];
print('前', array);
array.sort((a, b) => a.localeCompare(b));
print('後', array);
});
</script>
</body>
</html>
数値でソート 昇順 前:1,23,123,5,99 後:1,5,23,99,123 数値でソート 降順 前:1,23,123,5,99 後:123,99,23,5,1 文字のコードポイントでソート 昇順 前:1,23,123,5,99 後:1,123,23,5,99 文字のコードポイントでソート 昇順 前:あか,いか,イカ,アカ,アイ,あい 後:あい,あか,いか,アイ,アカ,イカ 言語による並び順でソート 昇順 前:あか,いか,イカ,アカ,アイ,あい 後:アイ,あい,あか,アカ,いか,イカ
