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点