티스토리 뷰
버블 소트라고 말하면 참 멋있긴 한데
안 좋은 알고리즘이다
기본적으로 생각할 수도 있는
두개 비교해서 잘못되어 있으면 위치를 바꾸는거.
하지만 나는 이런 것을 배우는 것에 좀 부정적이기는 하다
목표를 맞추려면 주의사항을 외우기보다는 목표에 집중하는것이 더 중요하기 때문이다
그래도 누군가 물어볼 수 있으니 알아놓자
세상에 불만은 많더라도
자신이 변하는게 세상이 변하는것보다 빠르다
자 이제 시리즈가 진행되었으니 생략을 많이해서 분석해보자
엔마이너스 1 을 하는 것은 잘 이해가 안되는 사람들이 있을텐데
현직자들도 종종 헷갈리는 것이니까 너무 괴로워하지 말고
그냥 생각대로 엔으로 진행해보는 방법이 있다.
i 에 n -1 은 이해 안될수도 있는데
j 에 n- i -1 부분도 이해하기 어려울 수 있다
j 에 n - 2 정도라면 이해할 법 한데 n - i 라고?
자 대입해서 따라가 보자
arr 0 이 arr 1 보다 크다면
arr 0과 arr 1 의 위치를 바꿔주는 코드가 작성되어 있다
이부분인 것이다.
위 리스트에 렌 함수를 쓰면 값은 7이 된다
for i in range (6) 이라면
0부터 5 까지 6번을 반복하게 된다
1부터 6까지 5번이 아니고
1부터 6까지 6번이 아니고
0부터 5까지 6번이다
0 1 2 3 4 5 를 i 에 대입하며 6번이다
다시보자
n 은 배열 길이가 7이니까 7이다
어떻게 되나 따라가 보자
근데 더 중요한거는
이걸 따라가는 것 보다도,
어떻게 반복되는지 적어보고
그걸 압축해서 이 코드로 만드는 과정이 더 중요하다
그런데 그것도 중요하지만 그렇게 못하겠으면 일단 가까이에 있는 이 해설을 보면서
따라가 보는 것도 필요하다
for i in range (6):
for j in range( 6-0-1 = 5 )
...
if arr[0] > arr [1] :
arr[0], arr[1] = arr[1] , arr[0]
.. 위 j 반복문 내부 내용을 01234 까지 5번 반복할것이다 ...
if arr[4] > arr[5]
for j in range( 6-1-1 = 4 )
...
위와 같이 중간 과정을 알 수 있다.
7개를 정렬하는데
5회전이 필요하고
1회전엔 5번반복
2회전엔 4번반복
5회전엔 1번반복이 됨을 알 수 있다
이걸 바탕으로 이중포문으로 정렬하는 것이다
이런 접근방법은 이 사이트에서, 이 카테고리 다른글들에서만 볼 수 있으니
모든 글을 열심히 여러번 읽길 바란다
여기선 본인 잘난척하려고 대충 쉬운거인척 넘어가는 행동은 하지 않는다.
'1' 카테고리의 다른 글
sql 뜻, 배우기, 공부방법| 예제 이야기 (0) | 2023.09.03 |
---|---|
비전공자를 위한 컴퓨터공학 인공지능, 머신러닝 이야기 - 지도 학습, 자연 상수, 시그모이드 함수, 로지스틱 회귀 모델(1) (0) | 2023.08.27 |
선택 정렬 알고리즘과 파이썬 함수를 쓰는 이유 - 비전공자를 위한 컴퓨터공학 배우기 시리즈 (0) | 2023.08.26 |
비전공자를 위한 컴퓨터공학 알고리즘 - 이진 검색 (0) | 2023.08.26 |
비전공자를 위한 컴퓨터공학 배우기 선형 검색 알고리즘 파이썬 코드 예제 (1) | 2023.08.25 |