人。 配列を特定のインデックスから特定のインデックスにソートする方法。フル配列のソートではありません。私は多くを探していますが、解決策を見つけることはできませんので、どうすればいいか教えてください。特定のインデックスから特定のインデックスへの配列の並べ替え
答えて
最も簡単な方法は、配列からソートされた特定の範囲を抽出し、その特定の範囲をソート済み配列に置き換えることです。
例
var array = [1,50,42,15,3,25,63,7,26,8,10,36,78,12]
let sliceSortedArray = array[5...10].sorted()
array.removeSubrange(5...10)
array.insert(contentsOf: sliceSortedArray, at: 5)
print(sliceSortedArray) // [7, 8, 10, 25, 26, 63]
print(array) // [1, 50, 42, 15, 3, 7, 8, 10, 25, 26, 63, 36, 78, 12]
編集 @Martin RはあなたにもreplaceSubrange(_:with:)
を使用することができます示唆したように。
array.replaceSubrange(5...10, with: array[5...10].sorted())
少し単純です: 'array.replaceSubrange(5 ... 10、with:array [5 ... 10] .sorted()) ' –
@MartinR 'array [range] = otherarray'でも使えますか?それはそれをさらに単純化するだろう。 –
@MartinR良い提案をしてくれてありがとう、 'replaceSubrange'で答えを編集しました。 –
filter
とsort
の組み合わせを使用すると、ソートされた要素を含む新しい配列が返されます。
let newArray = originalArray.filter {
//This is where you filter based on indexes
}.sort {
//This is where you sort your filtered array
}
あなたは、配列のスライス上に直接sort()
を呼び出すことができます。
var array = [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
array[2...7].sort()
print(array)
// [9, 8, 2, 3, 4, 5, 6, 7, 1, 0]
- 1. 特定のレベルで複数インデックスのデータフレーム列を並べ替える方法
- 2. 並べ替えの方法配列インデックスで並べ替えられたリスト
- 3. 内側のリストの特定のインデックスによるリストの並べ替え
- 4. JTable +特定のフィールドの並べ替え
- 5. 配列を特定の位置でarrayListに並べ替える
- 6. 特定の行で2次元配列を並べ替える
- 7. 特定の機能を持つ配列を並べ替える
- 8. 3D numpy配列を特定の方法で並べ替える
- 9. インデックスの並べ替え
- 10. 並べ替えられた配列のインデックスについての並列計算
- 11. インデックス値から配列を並べ替える方法
- 12. 配列キー(数値)を特定の配列(数値)に並べ替えます。
- 13. PHPインデックスを基にしたハッシュの配列の並べ替え
- 14. 2d配列の特定のインデックスのインデックスを調べる最も良い方法
- 15. 特定の行からファイルを並べ替える
- 16. 特定のサイズの順列に基づいた並べ替え
- 17. 特定のSlickGrid列の並べ替えを防止する
- 18. vb.netの特定の列を並べ替える
- 19. 名前付きインデックスによる配列の並べ替え方
- 20. 並べ替えソート、ソートされた配列のインデックス0
- 21. インデックスで並べ替え
- 22. RethinkdbのgetAll、インデックスの[並べ替え - タグ
- 23. Pythonの特定のロケールで特定のロケールのリストを並べ替える
- 24. SSRSマトリックス - 行を特定の列で並べ替える
- 25. 特定の要素に基づいて並べ替えの配列
- 26. uiグリッドの特定の列から並べ替えを削除するには?
- 27. Rubyで並べ替えられた配列のインデックスを取得しますか?
- 28. C++、特定のインデックス
- 29. 並べ替えられたNumpy配列の元のインデックスを取得する
- 30. 未定義列の並べ替え/並べ替え(LINQ \ Entity Framework)
それはまた、あなたは試してみましたかを示すためにあなたのコードを共有することができれば良いだろうか、あなたは間違っていた場所を知っています。 –
これまでに何を試しましたか?おそらく最も効率的ではないかもしれないが、配列を最初に小さな配列にスライスする指摘に基づいて、ひとつの解決策が考えられる。ソートしたい部分をソートし、配列を再度結合します。 –