전체 글

코딩을 공부하는 대학생입니다. https://github.com/Hyeri1ee
4. 파일 편집 명령어 4.1 ed 편집기 행단위 편집기 4.2 vi 편집기 화면 편집기 - 가장 많이 활용 4.3 ex 편집기 대화형 편집기 - 기본, 원시적 4.1 ed 편집기 4.1.1 ed 명령어의 실행 및 종료 ed의 호출 $ ed al $ ed e al al 이라는 파일의 편집작업 시작 ed를 호출 al이라는 파일의 편집 시작 ed의 종료 w q 버퍼의 내용을 파일에 저장 ed 명령어를 종료 파일의 편집 $ ed al al: No such file or directory a main(){ printf("독도는 우리땅"); } . w 31 q $ al 파일을 ed 편집기로 작성 처음 작성시 나타남 자료 추가 명령(문안입력 모드 시작) (문안입력 모드 종료 & 명령 모드 시작) 자료 저장 저장된 ..
보호되어 있는 글입니다.
힙정렬 힙정렬은 힙 자료구조를 이용하는 정렬 알고리즘. 힙 : 힙 조건을 만족하는 완전 이진트리. (힙 조건 -최대힙- 각 노드의 값이 자식 노드의 값보다 커야 한다는 것) n개의 노드를 가진 힙의 높이 = log2 n 힙의 루트에는 가장 큰 수가 저장되므로, 루트의 숫자를 힙의 가장 마지막 노드에 있는 숫자와 바꿈. 즉, 가장 큰 수를 배열의 가장 끝으로 이동시킨 것. 그리고 힙의 크기를 1 줄인후, 루트에 새로 저장된 숫자로 인해 위배된 힙 조건을 해결하여 새로운 루트의 숫자를 힙의 마지막 노드에 있는 숫자와 바꿈. 이를 반복. 수도코드 및 시간복잡도 힙 정렬 입력:입력이 A[1]부터 A[n]까지 저장된 배열A 출력:정렬된 배열 A 배열 A의 숫자에 대해서 힙 자료 구조를 만든다 heapSize = ..
쉘 정렬 버블 정렬의 경우, 작은 숫자가 배열의 앞부분으로 매우 느리게 이동. 삽입 정렬의 경우, 배열의 마지막원소가 입력에서 가장 작은 숫자라면, 그 숫자가 배열의 맨 앞으로 이동해야하므로, 모든 다른 숫자들이 1칸씩 오른쪽으로 이동해야함. 쉘 정렬 = 그룹의 크기를 줄여가며, 삽입정렬을 각 그룹마다 진행 수도코드 및 시간복잡도 입력:크기가 n인 배열A 출력:정렬된 배열A for each gap h = [h0 > h1 > ... hk = 1] //큰 gap부터 차례로 for i = h to n-1{ currentElem = A[i]; j = i; while(j >= h and (A[j-h] > currentElem)) { A[j] = A[j-h]; j = j-h; } A[j] = currentElem;..
선택 문제 (selection) n개의 숫자들 중에서 k번째로 작은 숫자를 찾는 문제. 효율적으로 찾기 위해 분할 정복 개념 씀. 수도코드 및 시간복잡도 selection(A, left, right, k) 입력 : A[left]~A[right]와 k (단, 1
퀵 정렬 퀵 정렬은 분할 정복 알고리즘으로 분류되나, 알고리즘이 수행되는 과정을 보면 정복 후 분할하는 알고리즘. 피봇이라는 배열의 원소를 기준으로 피봇보다 작은 숫자들은 왼편으로, 피봇보다 큰 숫자들은 오른편에 위치하도록 분할후, 피봇을 그 사이에 놓는 것. 분할된 부분문제들에 대해서도 동일한 과정을 순환적으로 수행한다. 수도코드 및 시간복잡도 Quicksort(A, left, right) 입력 : 배열 A[left] ~ A[right] 출력 : 정렬된 배열 A[left] ~ A[right] if (left < right) //만약 그렇지 않으면, left == right으로 더이상 분할할 수 없는 크기 { 피봇을 A[left] ~ A[right] 중에 선택하고, 피봇을 A[left]와 자리를 바꾼 후..
삽입정렬 삽입정렬은 배열을 정렬된 부분(앞부분) 과 정렬이 안 된 부분(뒷부분) 으로 나누고, 정렬이 안 된 부분의 가장 왼쪽 원소를 정렬된 부분의 적절한 위치에 삽입하여 정렬되도록 하는 과정을 반복. 정렬된 부분의 원소 수가 1개 늘어나고, 동시에 정렬이 안 된 부분의 원소 수는 1개 줄어듬. 수도코드 및 시간복잡도 입력 : 크기가 n인 배열 A 출력 : 정렬된 배열 A for i = 1 to n-1{ currentElement = A[i] //정렬이 안 된 부분의 가장 왼쪽 원소 j = 0) and (A[j] > currentEelement){ A[j+1] = A[j] //자리 하나씩 이동 j = pos && a[j] > currentElem) { a[j + 1] = a[j]; j--; } a[j +..
코딩신생아(0o0)
코딩신생아