요즘 알고리즘을 공부중인데 로직만으로는 뭔가 답답하네요 ㅜ 알고리즘 진행을 눈으로 보고 싶다는 생각이 굴뚝 같습니다. 그래서 구글링을 해봤더니 있었습니다. 정렬 알고리즘만 확인할 수 있지만 그래도 눈으로 확인할 수 있어서 속이 시원합니다. 물론 위키백과에서 정렬 알고리즘 치면 그림으로 나오긴 하는데 하나씩 봐야하는 단점이 있어서 제가 찾는 건 아니었습니다. 저는 한꺼번에 알고리즘을 보면서 비교해보고 싶었습니다. visualgo 으로 가면 알고리즘 진행과정을 확인할 수가 있습니다. 사이트 바로가기 : https://visualgo.net/en/sorting?slide=6-8 Sorting (Bubble, Selection, Insertion, Merge, Quick, Counting, Radix) - Vi..
삽입정렬 삽입정렬은 데이터 중 하나를 뽑아서(A) A 앞에 있는 데이터(B)와 비교해 $ A 앞 데이터 6보다 작음 -> [1,6,4,2] 4 뽑음 -> 앞 데이터 6보다는 작고 1보다 큼 -> [1,4,6,2] 2 뽑음 -> 앞데이터 4,6 보다 작고 1보다 큼 -> [1,2,4,6] 여기서 주의할 것은 계속 2번째 인덱스만 뽑지 않도록만 하면 됩니다. 계속해서 다음 인덱스로 넘어간다고 생각해야 합니다. 굉장히 중요합니다. 삽입정렬 알고리즘을 코드로 구현시 꼬이기 쉬운 부분입니다. 아무튼 순회횟수 +1 인덱스로 앞데이터와 하나씩 비교를 합니다. 버블 정렬에서는 뒤부터 정렬이 완성된 것에 반해 앞에서부터 하나씩 정렬이 됩니다. 데이터길이 비교 최대순회횟수 2 1 1 3 2 2 4 3 3 버블정렬과 같습니..
알고리즘 이론의 정렬에 대한 내용입니다. 프로그램 작성시 정렬을 세우는 건 아주 중요하고 빈번한 일입니다. 간단한 프로그램을 만들 때는 파이썬 내장 함수로 정렬이 가능하니 큰 필요성을 못 느낄 수 있는데 큰 프로그램을 만들거나 새로운 문제가 나타날 때 정렬 알고리즘을 알고 있지 않으면 역량부족으로 한참 해맬 수도 있습니다. 정렬 알고리즘은 알고리즘 파트 중에서 쉬운 편에 속해서 기초로 알고리즘이라는 분야를 입문하기 좋은 파트이므로 시간을 내서 배워보시는 것을 추천드립니다. 이번 포스팅에서는 버블 정렬에 대해 소개하겠습니다. 버블정렬 정렬은 데이터가 있을 때 이를 정해진 순서대로 나열하는 것을 의미합니다. 손으로 쓰면 너무 쉽겠지만 컴퓨터는 그게 아니라서 알고리즘을 짜서 데이터를 정렬할 수 있게 해주어야 ..