본문 바로가기

정렬

[Excel] 여러 기준으로 정렬하기?어렵지 않아요. 정렬은 엑셀에서 가장 많이 쓰는 기능 중 하나인데, 동시에 여러 조건을 걸고 정렬을 해야할 경우가 있다.그런 경우는 필터를 다중 사용하는 방법과 사용자 지정 정렬을 하는 법이 있다. 여기서는 사용자 지정 정렬을 하는 법을 알아보자. 위와 같이 표에서 아무 데나 눌러두고 정렬 및 필터->사용자 지정 정렬 을 선택한다. 여기가 정렬 기준을 만드는 곳이다. 일단 기본적으로 Age를 내림차순 (큰 수-> 작은수)로 정해보자. 그 후 왼쪽 상단의 기준 추가 를 누르면 기준이 하나 더 생기게 된다.이 창에서 위에 있을 수록 우선된 기준이다. 즉 Age 로 먼저 정렬을 한 다음, 같은 Age 내에서는 Pclass로 정렬하겠다고 이해하면 된다. 결과물에서 Age 와 Pclass를 보자. 앞서 설명했듯, Age가 먼저 .. 더보기
All that Sort - [3] Selection Sort (선택정렬) 선택정렬! 단도직입적으로 말하면, n번째 자리에 맞는 수를 찾아서 n번째 자리에 넣는 정렬이다. in-place 정렬이고 O(n2)의 복잡도를 가지는데, 위에서 설명한 것처럼, 좀 무식한-_-방법으로 sorting을 하기 때문에 bubble sort 보다 아주 약~간 뛰어나지만 insertion sort 보다는 "일반적으로" 좋지 못한 성능을 보인다. 어찌됐든, pseudocode 를 봅시다. 1 for i = 0 to n-2 do 2 min = i 3 for j = i+1 to n-1 do 4 if (a[j] < a[min]) do 5 min = j 6 if(i != min) do 7 swap a[i] and a[min] 그림에서와 같이 첫자리에 맞는 수 2, 둘째 자리에 맞는 수 3, 그리고 4, 5.. 더보기
All that Sort - [2] Insertion Sort (삽입정렬) 이번에 알고리즘 수업을 Self-Study 로 다시 듣게 된 김에 알고리즘 관련 포스팅을 다시 시작해볼까 한다. Bubble Sort는 사실 정렬이라고 부르기도 민방한 정렬이다. 삽입정렬은 그보다는 조금 더 elegant 한 방법이라 할 수 있다. 우선 pseudocode 를 보자. 1 for i = 1 to n-1 do 2 tmp = a[i] 3 j = i 4 while j > 0 AND a[j-1] > tmp do 5 a[j] = a[j-1] 6 j = j - 1 7 a[j] = tmp 우선 0번 원소는 건너뛰고 1번부터 차근차근히 보면서 가는 것이다. 즉, 1번원소일 때는 0~1을 정렬하고, 2번원소일때는 0~2를 정렬하고.. 이런 식으로 맨 뒤의 원소의 적절한 위치를 찾아서 마지막 원소까지 위치를.. 더보기
All that Sort - [1] Bubble Sort (거품정렬) 찾기(search) 와 정렬(sort)는 뗄래야 뗄 수 없는 존재로 현대 컴퓨팅의 매우 중요한 분야이다. 조금이라도 프로그래밍을 해보았다면, 효율적인 정렬과 찾기 방법이야말로 프로그램 최적화의 첫 단계라는 것을 알 것이다. 그래서 알고리즘 수업 시간에 배웠던 정렬 알고리즘들에 대해 하나씩 점검/정리 해보고자 한다. [1] Bubble Sort (거품정렬) 다들 수영장에서 수영을 해 본 기억이 있을 것이다. 수영하기, 물먹기-_- 등등 다양한 액션이 나오는 가운데 혹 물 속에서 숨을 뱉어보았는가? 자신의 입에서 나온 기체 방울이 점점 커지면서 수면으로 상승하는 것을 보았을 것이다. 이와 동일한 방법이 Bubble Sort 이다. 말 그대로, 거품정렬. 일단 예시를 보자. 4 9 3 6 2 버블 소트는 처음.. 더보기