리스트연결리스트리스트리스트는 순서가 있는 데이터를 늘어놓은 자료구조입니다.. 리스트는 선형리스트와 연결리스트가 있습니다. 리스트는 비상연락망과 같은 구조입니다. 따라서 누군가를 건너 뛰거나 뒤돌아 앞 사람에게 연락을 해서는 안됩니다.용어노드: 연결리스트에서 각각의 원소로 데이터와 포인터를 갖습니다.머리노드: 연결리스트에서 맨 앞에 있는 노드꼬리노드: 연결리스트에서 맨 뒤에 있는 노드앞쪽노드: 각 노드에서 바로 앞에 있는 노드뒤쪽노드: 각 노드에서 바로 뒤에 있는 노드배열 대신 연결리스트로 리스트를 구현해야 하는 이유데이터를 추가 · 삭제를 빈번하게 해야할 때 배열은 O(N)이 걸리는 반면에 연결리스트는 O(1)입니다.포인터를 이용한 연결리스트노드연결리스트의 기본 단위는 노드입니다. 노드는 data 와 n..
정렬이란? 정렬이란 키(key)들을 항목값의 대소관계에 따라 데이터집합을 일정한 순서로 늘어놓는 작업입니다. 정렬은 데이터를 정렬하면 데이터를 더욱 쉽게 검색 할 수 있습니다. 따라서 정렬을 한다는 것은 데이터들을 일정한 형태로 데이터를 나열하는 것과 같습니다. 정렬의 형태로 오름차순 정렬과 내림차순 정렬이 있습니다. 오름차순 정렬은 값이 작은 데이터부터 앞에 배치합니다. 반대로 내림차순 정렬은 값이 큰 데이터부터 앞에 배치합니다. 정렬의 종류로 9가지가 있습니다. 버블정렬, 선택정렬, 삽입정렬, 셸정렬, 퀵정렬, 병합정렬, 힙정렬, 도수정렬입니다. 앞에서 뒤의 순으로 학습을 하는 것이 권장된다고 합니다. 중요한 정렬은 퀵정렬, 병합정렬, 힙 정렬, 삽입 정렬입니다. 버블정렬 bubble sort 하나의..
재귀란? 어떤 이벤트에서 자기 자신을 포함하고 다시 자기 자신을 사용하여 정의하는 경우를 재귀(recursion)라고 합니다. 어떤 사건의 결과가 동일한 사건의 원인이 되는 경우를 재귀라고 합니다. 자연수의 정의를 예로 들어보겠습니다. 자연수를 1,2,3,4,...,의 규칙성을 가진 수라고 정의할 수 있습니다. 이를 재귀적 형태로 정의하면 다음과 같습니다. 1은 자연수다. 자연수의 다음 수는 자연수다.팩토리얼 알아보기 팩토리얼 문제 또한 재귀알고리즘을 통해 해결할 수 있습니다. 정수 n의 팩토리얼은 다음과 같이 재귀적 정의를 할 수 있습니다. n 이 자연수일 때, n = 0 이면, 0! = 1 n > 0 이면, n! = n * (n-1)!이를 함수로 구현하면 다음과 같습니다. def factorial(n..