본문 바로가기

[자료구조/java] 원형 연결 리스트 (Circular Linked List) * 원형 연결 리스트 (Circular Linked List) - 단순 연결 리스트에서 마지막 노드가 리스트의 첫 번째 노드를 가리키게 하여 리스트의 구조를 원형으로 만든 리스트 단순 연결 리스트는 현재노드에서 이전 노드를 접근 하려면 현재 위치에 상관없이 항상 리스트의 첫번째 노드부터 시작그러나, 원형 연결 리스트는 마지막 노드와 첫번째 노드가 연결되어 링크를 따라 순회하면 이전 노드에 접근 가능* 원형 연결 리스트는 마지막에 노드를 삽입하는 것이 곧 리스트의 첫 번째에 노드를 삽입하는 것과 같은 의미를 가짐 [ 삽입연산 ] if 리스트가 비어있는 경우 (CL==null)삽입하는 노드가 리스트의 첫번째 노드이자 마지막노드1. 리스트에 새로운 노드를 추가하고, 첫번째 노드로 지정2. 새 노드의 next가.. 더보기
[자료구조/java] 단순 연결 리스트 (Linked List) * 단순 연결 리스트 (Linked List) - 노드가 하나의 링크 필드에 의해서 다음 노드와 연결되는 구조를 가진 연결 리스트 * 장점 : 삽입, 삭제가 빠르다.하지만 중간에 있는 노드를 삭제하는 경우 탐색에 소요되는 시간이 있기 때문에맨 앞에 있는 요소를 삽입, 삭제하는 경우 O(1), 중간요소를 삽입, 삭제하는 경우 O(n)의 시간복잡도를 가진다.* 단점 : 탐색이 느리다.탐색의 경우 배열이 index를 이용하기 때문에 더빠르다. 1234567891011121314151617181920212223242526272829303132333435363738394041424344Test.java package LinkedList; public class Test { public static void mai.. 더보기
[정렬] 합병정렬 (Merge Sort) * 합병정렬 (Merge Sort) "여러 개의 정렬된 자료의 집합을 결합하여 한개의 정렬된 집합으로 만드는 방법 " Divide and Conquer (분할 정복) + Combine (결합) : 재귀적 구현 필요전체 원소들에 대해서 정렬을 수행하지 않고 부분집합으로 분할(divide)하고각 부분집합에 대해서 정렬을 완성(conquer)한 후에 정렬된 부분집합들을 다시 결합(combine) 시간복잡도 : O(nlog(n)) 최악의 경우에도 nlogn을 보장한다. (비교)*(횟수) ※ 오름차순 정렬에 대한 설명.input = [27, 2, 46, 4, 19, 50] 합병정렬은 말 그대로 나누고, 정렬하고, 합치는 과정을 반복하는 정렬 방법이다. 큰 문제를 작은문제로 나누어서 작은 문제부터 해결하면서 점점 .. 더보기
[소프트웨어공학] 결합도와 응집도 * 결합도와 응집도 결합도는 ↓ 낮아야하고, 응집도는 ↑ 높아야한다 [ 결합도 (Coupling) ]모듈간의 상호 연결을 측정 하는 것을 말한다.결합도가 낮을수록 이해하기 쉬우며, 에러 발생시 파급효과가 작아진다.높은 결합도는 소프트웨어 외부 환경과 결합될 때 발생하며, 디버깅을 어렵게 만든다. [ 응집도 (Cohesion) ]모듈내 기능 관련의 정도를 말한다.정보은닉 개념의 확장으로 볼 수 있다.하나의 모듈이 하나의 절차적 작업을 수행하는 것을 의미한다. 더보기
[소프트웨어공학] 소프트웨어 생명 주기(Software Life Cycle) * 소프트웨어 생명 주기 요구분석 -> 시스템명세 -> 설계 -> 구현 ->테스트-> 유지보수 1. 요구 분석 단계 : Requirement analysis개발할 소프트웨어의 기능과 제약조건, 목표 등을 소프트웨어 사용자와 함께 명확히 정의하는 단계.개발해야 할 소프트웨어의 성격을 정확히 이해하고 개발 방법과 필요한 자원과 예산을 예측해야한다.요구 명세서를 정확하게 작성해야 한다. 2. 시스템 명세 단계 : System Specification시스템이 무엇을 수행해야 하는가를 정의시스템 기능 명세서를 작성하여 입력 데이터, 처리내용, 생산 결과가 무엇인지를 정의 3. 설계 단계 : Design시스템 명세 단계에서 정의한 기능을 실제 수행할 수 있도록 수행 방법을 논리적으로 결정시스템 구조 설계, 프로그램.. 더보기