-
Notifications
You must be signed in to change notification settings - Fork 5
algorithm shell sort
Jongbin Oh edited this page Jun 8, 2013
·
1 revision
-
간만에 깔끔히 풀려서 기분이 좋다
Public Class ShellSort Function GetMovingOrder(ByVal originalOrder As List(Of String), ByVal desiredOrder As List(Of String)) As List(Of String) Dim original As New List(Of String)(originalOrder) original.Reverse() Dim desired As New List(Of String)(desiredOrder) desired.Reverse() Dim movedCount As Integer Dim i As Integer While i < original.Count - 1 If original(i) <> desired(i) Then movedCount += 1 original.RemoveAt(i) Else i += 1 End If End While Dim result As List(Of String) = desiredOrder.GetRange(0, movedCount) result.Reverse() Return result End Function End Class
- 주어진 순서대로 스택을 정렬하기
- 잘못된 생각
- 아래서부터 위로 올라가면서 주어진 순서의 스택이 맞는지 확인
- 아니면 해당 스택을 위로 올림
- 위를 반복함.
- 간단하게 생각했다가 낭패를 봄..
- '최소횟수'를 고려하지 않았었음
- 이전에 풀어봤던 거라.. 다시 풀지 않음. ^^;
- 브레인스토밍 시, 예전과 똑같이 '잘못된 생각'을 했네요..
- 이 문제를 고른 이유는 '실제로 어디에 활용하면 좋을지' 응용 분야를 알아보면 좋을 것 같아서 였습니다.
- 싱글 링크드 리스트를 주어진 순서로 정렬할 때 쓸만 할 것 같아요.
// 없음 ㅋㅋㅋ