1. 안정적 정렬안정적인 정렬이란 동일한 값을 갖는 데이터가 여러개 있을 때 정렬전의 상대적위치가 정렬후에도 그대로 유지되는 정렬을 의미합니다. 예컨대 입력데이터가 아래와 같이 존재한다고 가정해 보겠습니다.10,20,30,50,40,20,60 위에 정렬전 데이터에는 동일한 데이터인 20이 존재합니다. 앞의 20을 A 뒤의 20을 B라고 하겠습니다. 데이터를 정렬하면 아래의 두가지 케이스로 나뉠 수 있습니다.10,20(A),20(B),30,40,50,60 10,20(B),20(A),30,40,50,60 위의 첫번째 케이스를 '안정적'이라고 하고 두번째 케이스를 '불안정적'이라고 합니다. 따라서 안정적인 정렬이란 첫번째 케이스처럼 정렬되는 것을 의미합니다. 2. 제자리 정렬입력 배열이외의 별도로 필요한 저장..
1) 정확성 분석유효한 입력에 대해 유한시간 내에 정확한 결과를 만들어 내는지 확인하는 것입니다.이러한 확인은 수학적 기법을 사용하여 이론적으로 증명합니다. 2) 효율성 분석효율성 분석은 알고리즘 수행에 필요한 컴퓨터 자원의 양을 측정, 평가하는 것입니다.이러한 효율성 분석에는 공간복잡도, 시간복잡도가 있습니다. 1. 공간복잡도컴파일하는 시점에서 발생하는 메모리와 알고리즘을 수행할때 필요한 메모리가 있는데 이러한 총 메모리양이 필요한지 측정하는 것입니다. 2. 시간복잡도시간 복잡도는 알고리즘의 실행부터 완료까지 걸리는 시간을 분석하는 것입니다. 알고리즘의 수행시간은 각 연산이 수행되는 횟수의 합이라고 볼 수 있습니다이러한 수행시간에 영향을 미치는 요인에는 여러가지가 있습니다. 첫번째로 입력크기 입니다.예..
1. 알고리즘이란?주어진 문제를 해결하거나 함수를 계산하기 위해 따라야 할 명령어들을 단계적으로 나열한 것이라고 할 수 있습니다. 2. 알고리즘을 만족하기 위한 조건1. 입출력 : 0개 이상의 외부입력과 1개 이상의 출력을 생성해야 합니다.2. 명확성 : 각 명령은 모호하지 않고 단순 명확해야 합니다.3. 유한성 : 한정된 수의 단계를 거친 후에는 반드시 종료해야 합니다.4. 유효성 : 모든 명령은 컴퓨터에서 수행할 수 있어야 합니다.5. 효율성 : 효율성은 알고리즘을 만족하기 위한 필수 조건은 아닙니다. 그러나 실용적관점에서는 효율성도 상당히 중요합니다. 왜냐하면 알고리즘을 구성하더라도 무한한 시간이 걸린다면 문제해결을 할 수 없다고 볼 수 있기 때문입니다.3. 알고리즘의 생성단계1) 설계일반적/ 범용..
1. 매개변수 사이의 자료전달 방법1) 값의 의한 자료전달기본적인 자료전달 방법이며, 실매개변수와 형식매개변수 사이에 값을 전달합니다. 그러나 호출한 함수의 실행이 끝난 다음 전달받은 값을 리턴받지는 못합니다. 예제)#include void swap(int x, int y);void main() { int a = 3, b=5; printf("호출전 a = %d, b= %d\n", a, b); //출력: 호출전 a = 3, b= 5 swap(a,b); // 함수 호출(실 매개변수) printf("호출후 a = %d, b= %d\n", a, b); //출력: 호출후 a = 5, b= 3}void swap(int x, int y){ // 함수정의(형식 매개변수) int temp; temp = x; ..
1. 함수함수란 특정한 작업을 수행하도록 설계된 독립적인 프로그램을 의미합니다. C에서는 이러한 함수들이 정해진 순서에 따라 실행됨으로써 프로그램의 기능을 수행합니다. C 프로그램은 이러한 함수들로 구성되어있습니다. 즉 전체의 실행내용을 몇개의 모듈로 분류하여 각각의 모듈에 해당하는 내용을 함수로 작성하며 실행순서에 따라 그 함수들을 차례로 호출하여 실행됩니다. 이러한 함수의 특성으로는 서로를 자유롭게 호출가능하며 모든 함수는 서로 독립적입니다. 함수의 장점으로는 프로그램의 수정이 용이하고, 함수는 재사용이 가능하기때문에 코드 중복을 최소화 할 수 있고, 프로그램의 기능을 한눈에 파악할 수 있게 해줌으로써 유지관리가 쉽다는 것입니다. 단위 프로그램을 하나의 실행 함수에 기술한 경우 실행 함수의 길이가 커..
C언어에서 goto문은 프로그램 수행 도중에 원하는 곳으로 제어를 무조건 옮기는 제어문입니다. 1. 사용방법형식은 아래와 같습니다. Label: goto Label; .. 예제) #include #pragma warning(disable:4996)void main(void) { int i,n,c = 'A'; while(1){ printf("\n 횟수는?"); scanf("%d",&n); for(i=1;i 결과) 2. goto문을 사용할 수 없는 경우 goto 문이 보내는 레이블은 제어문 안의 레이블로는 보낼 수가 없습니다. 예제) 아래 3가지 케이스모두 제대로 작동하지 않습니다.#include #pragma warning(disable:4996)void main(void) { ..
1. 산술연산자연산자의 종류구분연산자기능이항연산자+,-,*,/더하기, 빼기, 곱하기, 나누기%나눗셈의 나머지단항연산자-부호의 반전++1증가--1감소 예제)#include void main(){ int x,y,z; x = 10; y = 3; z = -y; printf("z = %d\n",z); //z = -3 printf("x+y = %d\n",x+y); //x+y = 13 printf("x/y = %d\n",x/y); // x/y = 3 //%를 연산을 사용하기 위해 % 두개를 사용한다. printf("x%%y = %d\n",x%y); // x%y = 1 printf("y%%x = %d\n",y%x); //y%x = 3 in..
1. 표준 출력함수1) printf()모든 자료형의 내용을 출력하는 함수입니다.사용방법은 아래와 같습니다.printf("출력양식",변수1, 변수2,...); 예제)#include void main(){ char c = 'A'; int i = 10,j=20,k=30; printf("출력\n"); printf("c=%c,c의 아스키 코드값은 %d\n",c,c); // 출력: c=A,c의 아스키 코드값은 65 printf("i=%d,j=%d,k=%d",i,j,k); //출력: i=10,j=20,k=30 }2) putchar()1개의 '문자'를 출력하는 함수입니다. #include void main(){ char a = 'A'; putchar(a); putchar(a..
먼저 이클립스를 실행합니다.1. 프로젝트 생성좌측 가장 위 FILE > NEW > Dynamic Web Project 클릭합니다. Project name 작성한 후 Next를 클릭합니다. Next 버튼을 클릭하다 아래화면이 나타나면 web.xml을 생성해주는 체크박스를 클릭합니다.Finish 클릭하면 프로젝트가 생성됩니다. 2. JSP 파일 생성위에서 생성한 프로젝트를 우클릭 > New > JSP File을 클릭하면 아래와 같이 JSP파일을 생성하는 팝업이 나타납니다.디렉토리를 만들어 구분하고자 한다면 프로젝트를 우클릭하여 > New > Folder 클릭하여 폴더를 생성합니다.생성한 폴더에서 우클릭하여 JSP File을 클릭하면 됩니다. 단 모든 폴더와 JSP파일은 WebContent 파일 안에 있어야..
MVC(Mode-View-Controller) 패턴은 소프트웨어 디자인 패턴 중 하나로, 애플리케이션의 구조를 세 가지 주요 구성 요소로 분리하여 개발하는 방법입니다. 이 패턴은 애플리케이션의 유지보수성, 확장성, 재사용성을 향상시킬 수 있으며, 개발자 간의 협업을 용이하게 만듭니다. 1. MVC 패턴의 구성요소1) 모델(Model)모델은 애플리케이션의 비즈니스 로직과 데이터를 담당합니다. 데이터의 상태를 관리하고 데이터의 변경을 처리합니다. 모델은 독립적으로 존재하며, 보통 데이터베이스, 파일 시스템, 외부 API 등과 상호 작용하여 데이터를 가져오거나 저장합니다.2) 뷰(View)뷰는 사용자에게 정보를 시각적으로 표시하는 역할을 합니다. 모델의 데이터를 표현하고 사용자 인터페이스를 구성하는 역할을 수..