티스토리 뷰

반응형

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

버블 소트라고 말하면 참 멋있긴 한데 

 

안 좋은 알고리즘이다 

 

기본적으로 생각할 수도 있는 

 

두개 비교해서 잘못되어 있으면 위치를 바꾸는거. 

 

 

하지만 나는 이런 것을 배우는 것에 좀 부정적이기는 하다 

 

목표를 맞추려면 주의사항을 외우기보다는 목표에 집중하는것이 더 중요하기 때문이다

 

그래도 누군가 물어볼 수 있으니 알아놓자 

 

세상에 불만은 많더라도 

 

자신이 변하는게 세상이 변하는것보다 빠르다 

 

 

 

자 이제 시리즈가 진행되었으니 생략을 많이해서 분석해보자 

 

엔마이너스 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번반복이 됨을 알 수 있다

 

이걸 바탕으로 이중포문으로 정렬하는 것이다 

 

이런 접근방법은 이 사이트에서, 이 카테고리 다른글들에서만 볼 수 있으니 

 

모든 글을 열심히 여러번 읽길 바란다 

 

여기선 본인 잘난척하려고 대충 쉬운거인척 넘어가는 행동은 하지 않는다. 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

반응형
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함