teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

誤字修正

2019/11/20 10:47

投稿

nico25
nico25

スコア830

answer CHANGED
@@ -1,9 +1,16 @@
1
1
  ソートアルゴリズムは色々とありますが、
2
2
  普通にソートをすれば、あとは k 番目に小さい値を取れば終了です。
3
3
 
4
+ 例えばリストをクイックソートをして、k 番目に小さい値を取るというのは簡単そうです。
5
+ これも再帰を使っています。
6
+ * [pythonでquicksort](https://qiita.com/sbtseiji/items/6cfc38ccd48055166883)
7
+
4
8
  ただ、恐らく題意としては、
5
9
  二分ヒープを使って欲しいのかなと推測しています。
6
10
 
11
+ なぜなら全部をソートしなくても k 番目に小さい値を取れるので、
12
+ 全てをソートするのに比べて、計算量が少し少なくて済むからです。
13
+
7
14
  リストを heapify して、そのあと heappop を k 回せばいけますね。
8
15
  heapify, heappop 共に再帰を使用しています。
9
16