array.Sort
現在の配列の要素の順序を並び替えます
定義¶
名前空間: Alice
アセンブリ: Losetta.Runtime.dll
ソースコード: Alice.Core.Array.cs
Sort()¶
現在の配列を並び替えます
| 対応 | |
|---|---|
| AliceScript | 2.0、2.1、2.2、2.3、3.0、4 |
| AliceSister | 2.0、2.1、2.2、2.3、3.0、4 |
| Losetta | 0.9、0.10、0.11 |
Sort(delegate)¶
現在の配列の要素の順序を、指定した並べ替え規則を使用して並び替えます
| 引数 | |
|---|---|
comparator |
並び替えに使用するデリゲート |
| 対応 | |
|---|---|
| AliceScript | 4 |
| AliceSister | 4 |
| Losetta | 0.11 |
Sort(number,number)¶
現在の配列内の指定した範囲の要素の順序を並び替えます
| 引数 | |
|---|---|
index |
並び替えを開始するインデックス |
count |
並び替えを実行する要素の数 |
| 対応 | |
|---|---|
| AliceScript | 4 |
| AliceSister | 4 |
| Losetta | 0.11 |
説明¶
このメソッドは、イントロソートアルゴリズムを使用して、配列を並べ替えます。 このアルゴリズムでは、配列のパーティションサイズが16より小さい場合は挿入ソートを、\(2\log(n)\)(\(n\)は配列の長さ)を超える場合はヒープソートを実行し、そうでない場合はクイックソートを行います。このため、2つの要素の並び順が同じ場合でも、このメソッドを実行した後にそれらの順番が同じである保証はありません。
このため、このメソッドの計算量は\(O(\log{n})\)です。ここで、\(n\)は配列の要素数です。
このメソッドは、OrderByメソッドとは異なり、現在の配列内の要素を並べ替えます。
デリゲートを使用して、並び替え方法をカスタマイズする場合は、Sort(delegate)のオーバーロードを使用してください。このとき、comparatorは比較対象の要素を引数として2つ受け取ります。このラムダ式は、受け取った比較対象の要素に応じて、並べ替える必要がある場合は-1を返してください。
例¶
以下の例では、3、2、1と並ぶ配列を昇順にソートします。
以下の例では、配列の先頭から3つ目までの範囲をソートしています。