버블정렬은 구현하기 가장 쉬운 정렬이지만, 그만큼 가장 비효율적인 정렬 방법이다.

현재 원소를 뒤의 원소와 비교해서 더 크다면 둘을 바꿔준다. 이를 반복하면 가장 큰 원소가 가장 뒤에 오게된다.

그 다음부터는 가장 맨 뒤의 원소를 제외하고 이를 반복하면 된다.

func BubleSort(_ arr: [Int]) -> [Int] {
  var a = arr
  for i in 0..<a.count {
      for j in 0..<a.count-1-i {
        let temp = a[j+1]
        if(a[j] > a[j+1]) {
            a[j+1] = a[j];
            a[j] = temp;
        }
      }
  }
  return a
}

응용

New Year Chaos | HackerRank

시간복잡도