• 목록
  • 아래로
  • 위로
  • 댓글 2개
  • 쓰기
  • 검색

IT&가전 [개발지식-알고리즘01] 버블정렬

난브로야
2869 4 2
분류 정보

브로들 안녕?

예전에 개발 관련 공부를 하는 브로들도 보이고 개발자가 본업이라서 지식 정리겸 공유 차원에서 글을 써보려해

오늘은 알고리즘 중에서 가장 기초라고 볼 수 있는 버블정렬에 대한 글을 쓸거야

 

버블정렬은 리스트 내의 인접한 요소들의 크기를 비교해가면서 리스트를 정렬하는 알고리즘 방식이야

 

bubbleSort.JPG

[붙어있는 두 개의 원소 크기를 비교해 가면서 정렬하는 과정]

 

이렇게 가장 처음의 원소부터 끝의 원소까지 하나하나 비교해가면서 정렬을 하게 되면 리스트는 정렬된 형태가 되겠지?

붙어있는 요소들을 비교하는 과정이 거품이 보글보글 떠오르는 것 처럼 보인다고 해서 버블정렬이라는 이름이 붙었더라구

 

알고리즘 자체가 단순하기 때문에 코드 구현 난이도 자체는 무척 쉬운편이야

하지만 모든 원소를 하나하나씩 비교하기 때문에 시간복잡도는 O(N^2)으로 성능이 안좋은 편이지

예를들어 리스트의 원소가 1만개라면 버블정렬을 수행할때 대략 1억번의 연산을 해야된다는거고

1억번의 연산을 하게 되면 대략 1초의 시간이 걸려

 

보통 이름있는 서비스 같은 경우에는 이런 리스트에 1만개가 훨씬 넘는 정보들이 있겠지?

그럼 버블정렬을 사용한다면 서비스의 지연이 커지게 되면서 실효성이 낮아지게 될거야

 

이렇게 시간복잡도를 낮추기 위해서 효율적인 코드를 짜야만하고 그러기 위해서 알고리즘을 포함해서 CS(Computer Science)를 꾸준히 공부해야 좋은 개발자가 된다고 생각해

 

재미없는 글이고 다른 블로그에 더 양질의 컨텐츠가 있겠지만 앞으로 시간날때마다 글을 쓰면서 퀄리티를 높여보려고해

그럼 안뇽!

신고공유스크랩
werewolf werewolf Bro 포함 4명이 추천

댓글 2

댓글 쓰기
profile image
1등 브라이언 23.02.09. 21:41

버블정렬 예전에 배운거 기억난다 ㅋ 요즘은 라이브러리를 사용해서 내부구조를 알 필요는 없지만 어떻게 동작하는지는 이해하는게 중요하다고 생각함. 저걸 튜닝해서 여러가지 다른 알고리즘이 나올수도 있으니 말이지^^

profile image
2등 로건 23.02.09. 23:56

"버블정렬은 리스트 내의 인접한 요소들의 크기를 비교해가면서 리스트를 정렬하는 알고리즘 방식이야"

첫줄부터 이해가 안됨... ㅠ ㅠ

브로.. 미안.. 몇 번을 읽었지만 내 지적 수준이 이 영역으로 안 넘어가려하네... ㅠ ㅠ

권한이 없습니다. 로그인
0%
에디터 모드

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

이 댓글을 삭제하시겠습니까?

공유

퍼머링크