본문 바로가기

C38

이진탐색 이진탐색이란 절반씩 나누어 검색하는 분할탐색 알고리즘을 말한다. 순차탐색보다 빠르며, 이진탐색을 하기 위해서는, 오름차순이나 내림차순으로 정렬된 배열이 필요하다. 이를 간단한 예제로 구현하면 다음과 같다.12345678910111213141516171819202122232425262728293031#include int main(void){ int key; int low=0, high, mid; int arr[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; scanf("%d", &key); high = sizeof(arr) / 4; while (low 중앙값 이라면, 탐색범위의 처음인 low 가 mid+1 로 탐색 범위를 줄이고,그 반대라면 탐색범위의 끝인 high 가 mid-1로.. 2016. 3. 28.
선택정렬 & 버블정렬 선택정렬은 정렬되지 않은 전체 자료 중에서 해당 위치에 맞는 자료를 선택하여 위치를 교환하는 정렬 방식이다. 오름차순으로 정렬하기위해선 다음과 같은 코드가 있다. 12345678910111213141516171819202122 int main(void){ int i, j; int min, temp; int arr[10] = {9, 4, 5 ,3 , 1, 7, 6, 2, 8, 0}; for(i=0;i 2016. 3. 28.
문자열 문자열이란, 말 그대로 문자들의 나열을 뜻한다.문자열을 영어로 string 이라고 하는데, 이는 실이란뜻으로 문자들이 실처럼 이어져있기 때문이다.컴퓨터는 문자열을 저장할때, 문자들의 배열, 즉 char형 변수의 배열로 저장한다. 만약 arr이라는 char형 배열에 문자열 "ab"를 저장한다면 다음과 같다.이전에 설명하였듯, 문자를 저장한다는 것은 그 문자에 해당하는 아스키코드값을 저장한다는 것이다. 이를 어떻게 생각하던 프로그래머의 마음이다. 그런데 만약, 우리가 이 문자열을 출력한다면 이 문자열은 길이가 어느정도이다, 라고 컴파일러에게 알려줘야 할 것이다.이상적인 상황으로는 컴퓨터가 알아서 해줬으면 좋겠지만, 어떠한 조치가 없다면 문자는 '2문자일거야.' 라고 컴퓨터에게 알려주어야 한다. 문자열은 말 .. 2016. 3. 28.
과제 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816.. 2016. 3. 28.