Posted at

【swift】二次元配列をソートする

More than 1 year has passed since last update.

swiftで二次元配列をソートする方法を考えました。

学籍番号1~10番までの生徒が、100点満点のテストを受けたとします。

二次元配列を「twoDimArray」とし、[学籍番号(1~10)、点数]とします。

点数をランダムに割り当て、高得点順にソートします。


var twoDimArray = [[Int]]()

for _ in 0 ..< 10{
twoDimArray.append([])
}
//学籍番号1~10のそれぞれの生徒に、点数をランダムに割り当てる
for i in 0 ..< 10{
twoDimArray[i] = [i + 1,Int(arc4random_uniform(100))]
}
//学籍番号順にprintする
for i in 0 ..< 10{
let a = String(twoDimArray[i][0])
let b = String(twoDimArray[i][1])
print(a + ":" + b + "点")
}
//高得点順にソートする
print("高得点順にソート")
twoDimArray.sort{$0[1] > $1[1]}
//ソート結果をprintする
for i in 0 ..< 10{
let a = String(twoDimArray[i][0])
let b = String(twoDimArray[i][1])
print(a + ":" + b + "点")
}

print結果は、以下のようになります。

1:10点

2:51点

3:92点

4:34点

5:4点

6:44点

7:82点

8:5点

9:49点

10:88点

高得点順にソート

3:92点

10:88点

7:82点

2:51点

9:49点

6:44点

4:34点

1:10点

8:5点

5:4点