이재규 2

B트리 삽입, 삭제 도식화와 좀 특이한 방식 분석

위 파일은 인터넷서 얻은 도식화 파일이다. 그림으로 설명이 참 깔끔하게 잘 된듯 하다. 참조... http://swblog.net/entry/B-Tree B트리의 처리 방식은 제각각인 듯 하다. B트리의 원칙만 잘 지키면 되는 듯 하다. 삽입의 경우 좀 특이하게 처리했던 경우는(이재규 알고리즘 강좌) 일단 위에서부터 아예 포화상태에 놓인 경우(5차원시 노드에 5개 요소가 있는경우) 먼저 분할시키면서 아래로 내려와서 마침내 들어갈 자리를 찾으면 해당 노드에 요소를 삽입하는 방식이다. 이때문에 해당 노드에서 분할시에 부모가 오버플로우될 상황은 없다.(부모노드 요소의 갯수는 모두 4개 이하이므로) 다른 방식은 위 도식화에서 표현하듯이 저질러놓고 수습하는 방식인 데 이게 일반적인 경우인 듯 하다. 일단 해당 값..

힙정렬(Heap Sort) - topdown, bottomup 두 방식 소스 작성과 비교 등등 해봄

생각보다 코딩 작업이 더디었다. 개념은 이해하기 쉬운 데 막상 코딩을 할려니 이것저것 세밀하게 따져야 하는 부분이 상당수 있어서 그런듯 하다... 시작과 끝 인덱스라든지, 노드 공식, 갯수 파악 등 신경써서 해야하는 부분이 많으므로 시간이 좀 오래 걸렸다. 일부 알고리즘 서적이나 강의에서 계산의 편의로 실제 인덱스에 +1을 하고 작성하는 경우가 있는 데(이재규 알고리즘 참조) 굳이 그렇게 하지 않고 그냥 작성했다. 충분히 직관적으로 쉽게 파악가능하고 어차피 나중에 실제 요소값 바꿀 때는 원래의 인덱스를 취해야 하므로 그렇다. 인트형 무작위 100만개를 입력해 테스트해보았는데 책에서 나오는대로 bottomup방식이 쬐금 더 빨랐다....;;; 퀵소트랑 비교해봣는데 역시 퀵소트한테는 못당한다.... medi..