일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 호키도키
- javascript
- 리액트 예제
- 이종호
- 비동기
- 개발
- HTML
- 자스민
- hokidoki
- 개발자
- hokeys
- react
- 리액트
- 계명대
- Svelte
- Hitit
- data structure
- IOS
- queue
- TDD
- 스벨트
- 자바스크립트
- jest
- 호키스
- 계명대 이종호
- 자바스크립트 자료구조
- 힛잇
- SWIFT
- 자료구조
- 스위프트
- Today
- Total
목록자료구조 (19)
Dog foot print
공부하기 싫어서 그런가 갑작스럽게 선택정렬 포스팅을 하고 싶어졌다. 분석 선택정렬은 만들기는 쉬우나, 이동과 비교가 많아 O(ne2)의 복잡도를 가지는 정렬이다. 단순한 정렬 방법으로, 정렬되지 않은 배열에서 처음 부터 끝까지 돌며 가장 작은 수를 골라 정렬된 배열의 끝에 삽입한다. 타언어는 배열의 중간에 있는 것을 삭제하는 작업이 매우 귀찮은데, 자바스크립트는 splice 메서드를 제공해주어 비교적 쉽게 삭제가 가능합니다. 코드 //임의의 길이의 랜덤한 값이 들어있는 배열을 반환하는 함수 function makeArray(){ let randomIndex = Math.floor(Math.random() * 100); const array = []; for(let i = 0; i array[u]){ mi..
단순 무식하게 하드 코딩 했습니다 . 알고리즘은 간단하게 짰는데, 이를 c언어로 푸는 과정이 어려웠었습니다. 코드 #pragma warning(disable:4996) #include #include #include int findMedian(int list[], int left, int mid, int right) { int median = left; if (list[left] > list[mid] && list[mid] list[right] && list[right] list[left] && list[left..
( 너무나도 꼰대적인 교수 한명 때문에 이번 학기는 정말이지 너무나도 스트레스 받는다. ) 파라메터로 넘겨주는 값에 따라 pivot의 위치가 변하는 퀵소트 function swap(list, from, to) { const dummy = list[to]; list[to] = list[from]; list[from] = dummy; } function findMedian(list, left, mid, right) { let median = right; if (list[left] > list[mid] && list[mid] list[right] && list[right] < list[left]) { median ..
기존에 만들어서 올린 완전이진트리는 node타입이 마지막 삽입을 위한 노드에 대한 정보를 가진 링크가 더 있어서 구조체가 최소화 되지 못했다고 생각한다. 그래서 기존에 만든 완전이진트리의 노드는 node + queue의 역할을 겸하기에 이번에는 따로 분리 해주었다. 이번 작업에서는 queue를 이용한 트리에서 마지막 삽입된 노드를 찾는 흐름과 마지막 삽입된 노드의 부모를 찾는 작업의 흐름, 삽입되어야 할 위치를 찾기 위한 흐름을 보기위해서 삽입과 삭제시마다 queue를 새로 생성해서 찾게 하였다. 만약 적은 움직임으로 찾게 하고 싶으면, 트리의 선형적인 구조를 담은 queue를 어딘가 보관하고, 삭제할 노드의 부모노드에 대한 정보를 알고 있어야 한다. 구조 // tree -> node typedef st..
이번 주 목요일부터 자료구조(2)수업이 실습수업을 겸하면서 오랜만에 만져보는 C언어와 자주 쓰지 않는 비쥬얼스튜디오를 익혀야 할 필요가 생겼다. 교수님은 다음과 같은 텍스트파일의 숫자를 트리에 삽입 및 노드에 있는 모든 값들을 더해서 출력하기를 원하셨다. 다만 문제가 있었다. 트리라고는 말씀하셨는데, 완전이진트리인지, 힙 트리인지 , 이진탐색트리인지를 제대로 못 들은 것이다. 그래서 그냥 완전 이진트리를 사용해서 데이터를 삽입할 계획을 세웠다. 그런데 , 문제는 완전이진트리의 삽입이 다른 트리와 다르게 노드간 데이터를 비교하면서 맞는 위치에 삽입되는 형태가 아니라 노드가 삽입될때 부모노드의 왼쪽자식노드 , 오른쪽 자식노드를 채우고 , 마지막 레벨의 노드를 제외하고 모두 자식노드를 두개씩 가지고 있어야 한..
heap 이란 ? heap 은 우선순위 큐를 위해서 만들어진 트리자료구조이다. heap은 부모노드와 자식노드의 대소관계에 따라 최대힙(Max heap)과 최소힙(Min heap)으로 나뉜다. heap의 특징 heap은 완전이진트리의 형태이다. 완전이진트리 설명보러가기 heap은 트리내에서 중복된 값을 허용한다. heap은 느슨한 정렬(반 정렬) 상태를 가진다. 반 정렬 이라는 의미는 자식노드가 부모의 노드보다 무조건 크거나 작다. 그러나 전체트리를 볼 때는 가장 아래에 있는 노드가 가장 작거나 큰 값은 아니라는 의미이다. Max heap 최대 힙 최대힙은 다음과 조건을 항상 만족한다. 자식노드 value >= 부모노드 value Min heap 최소 힙 최소힙은 다음과 같 은 조건을 항상 만족한다. 자식..
해당 포스팅은 큐와 트리를 이해했다는 가정하에 작성되고 있습니다. 큐와 트리에 이해도가 없는 분들은 본 포스팅을 보기 전 큐와 트리에 대한 포스팅을 먼저 읽어주시기 바랍니다. 우선순위 큐란 ? 우선순위 큐는 일반적인 큐와 거의 동일하다. 큐는 해당자료구조에 들어온 순서대로 배출이 된다. 다만 우선순위 큐는 우선순위큐는 먼저나가는 순서를 들어온 순서 뿐만 아니라 다른 조건에 의하여 들어온 데이터에 우선순위를 부여해 순위에 맞게 배출한다. 어찌보면 일반적인 큐도 우선순위큐가 될 수 있는데 배출되는 순서를 해당 큐에 들어온 순서에 의거하여 우선순위를 부여하여 배출하기 때문이다. 우선순위 큐의 사용 예 우선순위 큐는 우리의 일상에서도 친근하게 사용되고 있다. 유니버셜 스튜디오랜드같은 해외 외국 놀이공원에서는 일..
포스팅 전 주저리 : 자스민도 슬슬 확장해보려는 마음이 생겨 에브리타임에 다시 가입했다. 그런데 수강신청기간이라 그런지 게시판은 수강신청에 대해서 활발하게 대화 중이였는데, 속이려는 놈, 동요하는 놈, 이상한 놈이 섞여서 혼돈의 도가니였다. 그중 가장 웃긴놈은 학교 근처에서 접속하면 3분 먼저 접속이 가능하다. 조금 더 접속이 잘된다. 이런 말 하는 놈이였는데 결국 못 참고 ppt로 헛 소문들 정리해줬다. tree에 삽입 2부에서 설명 했듯이 배열로 이진트리를 만들면 왼쪽 자식노드의 인덱스 번호는 부모노드의 인덱스 * 2 이며, 오른쪽 자식노드는 부모의 (인덱스 * 2) +1 의 인덱스 번호를 가진다. 그렇기에 이진탐색트리에 새롭게 삽입될 인덱스 번호를 삽입하는 일은 현재 노드의 데이터를 삽입하려는 데이..