목록주석 (5)
Prosto
'빠르게 정렬하는 방법으로 가장 많이 사용되는 퀵정렬' 퀵 정렬은 빠른 정렬이나 퀵 소트(Quick Sort)라고도 부릅니다. 퀵 정렬(Qucik Sort)는 데이터를 정렬하는 방법 중 하나입니다. 데이터를 분할(Divide)하고 분할된 부분 별로 이동하는 정복(Conquer) 과정을 반복하여 거쳐 정렬하는 방법입니다. (지금까지의 정렬들과 달리 조금은 복잡합니다만 보고, 직접 해보며 이해할 수 있을 겁니다.) 성능을 Big O로 표기한다면 average, best = O(n log n)이고, worst = O(n^2)입니다. 일반적으로는 O(n log n)의 성능을 내주지만, 피봇(중심점이) 항상 최솟값이나 최댓값으로 잡힌다면 최악의 성능인 O(n^2)이 나옵니다. 참고로 지금까지 했던 (선택, 삽입,..
'검색할 범위를 반으로 줄여가며 찾아가는 이분 검색(Binary Search)' 이분 검색은 검색할 자료를 반씩 나누어 나머지 반만 검색하는 방식을 반복하여 자료를 찾는 검색(탐색) 방법입니다. 이 이분 검색을 이용하여 자료를 찾는다면 빠른 속도로 원하는 자료를 찾을 수 있습니다. (단, 이분 검색은 정렬되어있는 데이터에 사용할 수 있습니다.) (정렬 방법은 블로그 내의 다른 글을 참고하시면 도움이 될 것 같습니다.) 성능을 Big O로 표기한다면 O(log n)입니다. 자료가 2개라면 1번, 4개(2^2개)라면 2번, 8개(2^3개)라면 3번, 16개(2^4개)라면 4번, ... 1,024개(2^10개)라면 10번, 1,048,576개(2^19개)라면 최대 19번이면 찾습니다. 굉장히 빠르죠? 실제 배..
배열에 대한 연습 문제를 풀어보는 세 번째 시간입니다.(아직 배열에 일정한 규칙을 가지고 숫자를 넣어보는 문제입니다.) 배열과 for문(반복문) 사용을 할 수 있어야합니다.배열을 잘 모르겠다면?'[C언어] 배열(Array)의 이해와 예제, 문제' 일정한 규칙을 찾고 그걸 만드는 것은프로그래밍 로직을 구성하는 훈련을 할 수 있으니어떻게 하면 만들 수 있을지잘 생각해보고 만들어보시면 좋을 것 같습니다.(하나 하나 풀어가면 실력은 쌓이겠죠?) 완성된 소스는 제공합니다.설명이 필요한 부분은 간단하게 설명(혹은 주석)도 함께 올리도록 하겠습니다.(각자 자신만의 소스가 나올 수도 있겠죠.) 세 번째 시간의 문제도 1, 2 번째 시간과 유사한 문제입니다.이번 시간에는 기존 5 X 5 배열을 10 X 10으로 수정하여..
배열에 대한 연습 문제를 풀어보는 두 번째 시간입니다. 배열과 for문(반복문) 사용을 할 수 있어야합니다.배열을 잘 모르겠다면?'[C언어] 배열(Array)의 이해와 예제, 문제' 이런 규칙을 찾고 그걸 만드는 것은프로그래밍 로직을 구성할 수 있는 훈련을 할 수 있으니어떻게 하면 만들 수 있을지잘 생각해보고 만들어보시면 좋을 것 같습니다. 완성된 소스는 제공합니다.설명이 필요한 부분은 간단하게 설명(혹은 주석)도 함께 올리도록 하겠습니다.(각자 자신만의 소스가 나올 수도 있겠죠.) 두 번째 시간의 문제도 배열에서 간단한 문제일 것이라 생각됩니다.아마도 배열 초반 부분은 이런식의 문제일 겁니다.기초를 다지는 의미에서 문제마다 새로운 project를 생성하여 작성해보세요. 문제1. 아래의 사진과 같이 5x..
'배열 - 변수들을 필요한 만큼, 여러 개를 한번에 만들고, 사용할 수 있는 방법!' 프로그래밍을 하다보면 한 종류의 여러 개의 변수가 필요한 경우가 있습니다. 또는 단순 반복 작업을 간단하게 처리하고 싶지만, 변수 이름이 여러 개라면 그렇게 하기 힘들죠. (하나씩 일일이 입력해줘야죠....) 이런 때에 사용되는 게 바로 배열입니다. 예를 들어 학생 100명의 테스트 점수를 받고싶은데, 그 점수를 받는 변수들을 배열을 사용하지 않는다면 어떻게 받아야 할까요? int student1, student2, student3, student4, student5, ... , student99, student100 이렇게 1번 학생부터 100번 학생까지 일일이 만들어줘야겠죠? 그러면 입력 받을 때는 어떻게 될까요? ..