자료구조 2

정렬 (삽입정렬과 퀵정렬)

정렬 삽입 정렬 응용 삽입 정렬의 알고리즘에 대해 간단히 요약해보면 자료 배열의 모든 요소를 앞에서부터 차례로 이미 정렬된 배열 부분과 비교하여, 자신의 위치를 찾아 삽입함으로써 정렬을 완성하는 알고리즘이다. 매 순서마다 해당 원소를 삽입할 수 있는 위치를 찾아 해당 위치에 삽입하는 것이다. 삽입 정렬 알고리즘의 구체적 아이디어 삽입 알고리즘은 리스트 내에서 정렬된 부분과 아직 정렬되지 않은 부분으로 나뉜다. 그래서 반복문을 두번 사용하는 것이 보편적인데 일단 전체 자료를 탐색하기 위한 포문을 하나 만들고 그 내부에 현재 비교할 자료를 정렬된 부분에 끼워주기 위한 반복문을 만들어준다. 2. 소스코드 while int* Insertion_sort(int* random_data, int n) { for (i..

학과 공부 2021.06.03

prim 알고리즘

신장트리란? 신장트리란 연결 그래프의 부분 그래프이다. 그래프는 속도는 높지만 사이클이 존재하므로 비용이 많이 들게 된다. 신장트리는 사이클이 존재해서는 안되므로 속도측면에서는 그래프보다 뒤떨어질 수 있어도 비용 측면에서 그래프보다 우세하다. 정리해보면 신장트리에서 모든 노드는 적어도 하나의 간선에 연결되어 있어야 하며 그 대신에 사이클이 형성되면 안된다. 최소 비용 신장 트리란? 그래프의 간선에 가중치가 부여된 그래프를 가중치 그래프 또는 네트워크라고 한다. 이때 가중치란 비용이나 거리를 의미하는 값이 될 수 있다. 가중치가 부여된 무방향 그래프의 신장 트리 비용은 신장트리를 구성하는 모든 간선의 비용을 합한 것이다. 여기서 말하는 최소 비용 신장트리는 트리를 구성하는 간선들의 가중치를 합한 것이 최소..

학과 공부 2021.06.02