문제링크
- 시간제한 : 1초 (약 1억개의 연산)
- n 범위 : 1 ~ 1000
- O(N^2) : 1,000,000
Selection Sort
import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter
fun main() {
val br = BufferedReader(InputStreamReader(System.`in`))
val bw = BufferedWriter(OutputStreamWriter(System.out))
val n = br.readLine().toInt()
val nums = mutableListOf<Int>()
for (i in 0 until n) {
nums.add(br.readLine().toInt())
}
for (i in 0 until n) {
var minValue = 1001
var minIndex = 0
for (j in i until n) {
if (minValue > nums[j]) {
minValue = nums[j]
minIndex = j
}
}
val temp = nums[i]
nums[i] = minValue
nums[minIndex] = temp
}
nums.forEach { bw.write("$it\n") }
br.close()
bw.close()
}
Insertion Sort
import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter
fun main() {
val br = BufferedReader(InputStreamReader(System.`in`))
val bw = BufferedWriter(OutputStreamWriter(System.out))
val n = br.readLine().toInt()
val nums = mutableListOf<Int>()
for (i in 0 until n) {
nums.add(br.readLine().toInt())
}
for (i in 0 until n - 1) {
var j = i
while (j >= 0 && nums[j] > nums[j + 1]) {
val temp = nums[j]
nums[j] = nums[j + 1]
nums[j + 1] = temp
j--
}
}
nums.forEach { bw.write("$it\n") }
br.close()
bw.close()
}
Bubble Sort
import java.io.BufferedReader
import java.io.BufferedWriter
import java.io.InputStreamReader
import java.io.OutputStreamWriter
fun main() {
val br = BufferedReader(InputStreamReader(System.`in`))
val bw = BufferedWriter(OutputStreamWriter(System.out))
val n = br.readLine().toInt()
val nums = mutableListOf<Int>()
for (i in 0 until n) {
nums.add(br.readLine().toInt())
}
for (i in 0 until n) {
for (j in 0 until n - 1 - i) {
if (nums[j] > nums[j + 1]) {
val temp = nums[j]
nums[j] = nums[j + 1]
nums[j + 1] = temp
}
}
}
nums.forEach { bw.write("$it\n") }
br.close()
bw.close()
}