오덕왕
Bronze개인인증
팔로워0 팔로우
소개
과 수석
전문분야 공학/기술프로그램소스
판매자 정보
학교정보
입력된 정보가 없습니다.
직장정보
입력된 정보가 없습니다.
자격증
  • 입력된 정보가 없습니다.
판매지수
전체자료 7
검색어 입력폼
  • 판매자 표지 [리눅스] C언어 MMAP 설명 및 예제
    [리눅스] C언어 MMAP 설명 및 예제
    [임베디드시스템SW]mmap을 활용한 프로그램1. 개념 정리(1) MMAP이란?mmap() 함수는 fd로 지정된 파일(혹은 다른 객체)에서 offset을 시작으로 length바이트 만큼을 start주소로 메모리에 대응(매핑)시킨다. start주소는 단지 그 주소를 사용했으면 좋겠다는 정도로 보통 0을 지정한다. mmap는 지정된 영역이 대응된 실제 시작 위치를 반환한다. prot인자는 원하는 메모리:::보호모드(:12)를 설정한다. 이 함수는 커널에 요청하는 것으로 사용할 수 있는 비트는 다음과 같다.[그림1 MMAP]○ PROT_EXEC 페이지는 실행가능하다.○ PROT_READ 페이지는 읽을 수 있다.○ PROT_WRITE 페이지는 쓰여질 수 있다.○ PROT_NONE 페이지는 접근할 수 없다.○ flags는 대응된 객체의 타입, 대응 옵션, 대응된 페이지 복사본에 대한 수정이 그 프로세스(:12)에서만 보일 것인지 아니면, 다른 참조하는 프로세스와 공유할 것인지를 설정한다. 다음과 같은 비트들을 사용할 수 있다.○ MAP_FIXED 지정된 주소 이외의 다른 주소를 선택하지 않는다. 지정된 주소가 사용될 수 없다면 mmap()는 실패한다. 만일 MAP_FIXED가 지정되면, start는 페이지 크기의 배수이어야 한다. 이 옵션은 사용하지 않는 것이 좋다.○ MAP_FIXED 지정된 주소 이외의 다른 주소를 선택하지 않는다. 지정된 주소가 사용될 수 없다면 mmap()는 실패한다. 만일 MAP_FIXED가 지정되면, start는 페이지 크기의 배수이어야 한다. 이 옵션은 사용하지 않는 것이 좋다.○ MAP_SHARED 대응된 객체를 다른 모든 프로세스와 공유한다.○ MAP_PRIVATE 개별적인 copy-on-write(:12) 대응을 만든다.(다른 프로세스와 대응 영역을 공유하지 않는다). 위의 3개의 플래그는 POSIX.1b에 규정되어 있다. 리눅스는 MAP_DENYWRITE, MAP_EXECUTABLE, MAP_ANON(YMOUS)도 지원한다.(2) 사용법#include #include #ifdef _POSIX_MAPPED_FILES void * mmap(void *start, size_t length, int prot, int flags, int fd, off_t offset);int munmap(void *start, size_t length);#endif2. 함수 설명1) stat() 함수 : 파일의 크기, 권한, 파일의 생성 시간, 최종 변경일 등 파일의 정보를 얻는 함수이다.사용법 : int stat(const char *path, struct stat *buf);2) srand() 함수 : 호출할 때 전달받는 인자를 기반으로 난수를 초기화 시켜주는 함수사용법 : srand(인자);3) time() 함수 : 난수를 생성할 때 자주 쓰는 함수로 인자값을 NULL로 하면 1970년 1월 1일(UTC 타임 존) 이후부터 인자값까지 흐른 초 수를 리턴해줌사용법 : time(NULL)4) sleep() 함수 : 프로그램에서 일정 시간 동안 작업을 대기(Wait)하고 싶을 때 사용하는 함수로 인자값에 정수를 입력하면 해당 정수(초)만큼 대기함사용법 : sleep(100) //100초간 대기3. 소스 코드(C)1) mmap_prevlife.c- 전생과 미래를 알려주는 프로그램(신빙성 0)#include #include #include #include //파일 잠금을 위한 헤더#include #include #include #include //난수 생성 값을 매번 다르게 하기 위한 시간 헤더int main(int argc, char *argv[]){//a legacy BSD type(low level calls like mmap)int fd; pid_t pid; caddr_t addr;struct stat statbuf;//Loop = 반복 횟수, Value = 난수를 저장할 변수int loop =0, value = 0, status;//난수에 따라 future 배열에서 미래, past 배열에서 전생에 대한 문자열을 가져옴char *future[] = {" 날라리입니다.n", " 암울합니다n","선량한 시민을 우롱한 정치인입니다n", " 너무 막막해서 안 보입니다n", "유흥에 전재산을 탕진하는 재벌 1세입니다n", "우연히 대박이 터져 출세한 졸부입니다n", };char *past[] = {" 역모를 꿈꾼 노비입니다n", " 세상의 빛을 노래하는 음유시인입니다.n", " 아무나 베어대는 무사입니다.n", " 불사의 바퀴벌레입니다.n", " 공주에게 호구 잡힌 기사입니다.n"," 역모에 당한 황제입니다.n", "주인을 대신해 열정적으로 집을 지키던 집진드기입니다n", "누구보다 앞에서 생명을 구하고 의를 행한 군자입니다n", "만 백성을 살린 현왕입니다n", "단 1%의 가능성을 믿고 인류를 발전시킨 개척가입니다n"};if(argc != 2){ //시작할 때 인자가 2개여야 함fprintf(stderr, "Usage : %s filenamen", argv[0]); //ex)mmap_test abc.dat(본 프로그램은 sudo ./mmap_prevlife data.txt)exit(1);}if(stat(argv[1], &statbuf) == -1){//stat함수를 사용하여 파일 사이즈를 가져옴perror("stat");exit(1);}if((fd = open(argv[1], O_RDWR)) == -1){perror("open");exit(1);}//파일을 메모리에 사상addr = mmap(NULL, statbuf.st_size, PROT_READ|PROT_WRITE, MAP_SHARED, fd, (off_t)0);//mmap함수를 통해 파일 읽기, 쓰기, 모든 프로세스가 공유할 수 있도록 함//mmap 실패 시 에러 처리if(addr == MAP_FAILED){perror("mmap");exit(1);}close(fd);srand(time(NULL));//time(null)로 반환받는 값을 인자로 하여 난수를 생성한다addr[0] = '0'; //addr 배열의 0인덱스를 0으로 초기화addr[1] = 'R';//addr 배열의 1인덱스를 ‘R’로 초기화pid = fork(); //fork로 자식 프로세스 복사(생성)while(loop < 100){//pid값으로 분기(자식이면 0, 에러 발생 시 ?1, 부모면 자식 프로세스의 ID)switch(pid){//에러 처리case -1:/*fork 실패*/perror("fork");exit(1);break;//pid가 0이면 자식 프로세스case 0:if(addr[1] == 'S'){for(int i = 0; i < 10; i++){//자식 프로세스의 난수를 value에 저장value = rand() % 10;}/*자식 프로세스*/printf("당신의 전생은 %s", past[value]);printf("당신의 미래는 %sn", future[(int)addr[0]-48]);/* addr[1]의 값을 R로 초기화하여 부모 프로세스에서 다시 조건문 내부 명령문을 실행할 수 있도록 함 */addr[1] = 'R';}break;default://addr[1]의 값이 R이면 부모 프로세스는 조건문 안에 명령을 실행함if(addr[1] == 'R'){printf("Repetition %dn", (loop+1));//부모 프로세스의 난수를 value에 저장
    공학/기술| 2020.12.21| 6페이지| 1,000원| 조회(307)
    미리보기
  • 판매자 표지 [리눅스] C언어 UDP, TCP 통신 프로그램 예제
    [리눅스] C언어 UDP, TCP 통신 프로그램 예제
    [리눅스 환경 C언어]UDP, TCP 통신 프로그램(클라이언트, 서버 총 4개)1. 프로그램 목록1) UDP 서버 1개2) UDP 클라이언트 1개3) TCP 서버 1개4) TCP 클라이언트 1개총 4개 프로그램(C언어 ? 리눅스 환경)2. 개념 정리UDP(User Datagram Protocol)란?: 인터넷에서 정보를 주고받을 때, 서로 주고받는 형식이 아닌 한쪽에서 일방적으로 보내는 방식의 통신 프로토콜. 비 연결지향 방식TCP(Transmission Control Protocol)란?: 서로 다른 운영체제를 쓰는 컴퓨터 간에도 데이터를 전송할 수 있어 인터넷에서 정보전송을 위한 표준 프로토콜로 사용됨. 연결지향 방식3. 함수 설명1) accept() 함수 : 소켓으로부터 연결을 받아들이는 함수로 아직 처리되지 않은 연결들이 대기하고 있는 큐에서 제일 처음 연결된 연결을 가져와서 새로운 소켓을 만든다. 연결에 성공하면 0보다 큰 파일 지정번호를 반환하고 실패(에러)시 ?1을 반환한다.int accept(int s, struct sockaddr *addr, socklen_t *addrlen); 형식으로 사용함2) memset() 함수 : 메모리의 내용을 원하는 크기만큼 특정한 값으로 설정할 수 있으며 memory set의 줄임말이다.memset(포인터, 설정할 값, 크기); 형식으로 사용함3) write() 함수 : txt파일의 내용을 입력하는 함수. 리눅스에서는 파일과 소켓을 동일하게 취급하므로 소켓을 통해서 다른 호스트에게 데이터를 전송할 때도 사용함4) read() 함수 : txt파일의 내용을 읽어오는 함수. 리눅스에서는 파일과 소켓을 동일하게 취급하므로 소켓을 통해서 다른 호스트에게 데이터를 수신할 때도 사용함5) bzero()함수 : 메모리 공간을 size 바이트만큼 0으로 채우는 함수6) socket() 함수 : 소켓을 생성하는 함수socket(domain, type, protocol) 형식으로 사용함7) strlen() 함수 : char*가 가리키는 주소에서부터 시작해서 ‘’ 문자가 나올 때까지의 문자들의 개수를 카운팅하여 최종 길이를 반환하는 함수8) strcpy() 함수 : 문자열을 복사하는 함수strcpy(대상 문자열, 원본 문자열) 형식으로 사용함9) bind() 함수 : 소켓에 IP주소와 포트 번호를 지정해주는 함수로 소켓 통신 준비를 함bind(int sockfd, struct *myaddr, socklen_t addrlen) 형식으로 사용10) socket(int domain, int type, int protocol) 함수 : 소켓을 만드는 함수- Domain : 프로토콜 체계 ex) PF_INET- Type : 데이터 전송 방법 ex) SOCK_STREAM(TCP), SOCK_DGRAM(UDP)- Protocol : 호스트와 호스트 사이에 사용할 규칙 ex)IPPROTO_TCP, IPPROTO_UDP11) listen() 함수 : 클라이언트가 ServerSocket에 부여한 IP와 PORT로 접속했는지를 감시int listen(int socket, int backlog) 형식으로 사용함12) send() 함수 : 클라이언트로 데이터를 전송하는 함수int send(int socket, const char FAR* buf, int len, int flags) 형식으로 사용함13) recv() 함수 : send 함수를 이용해서 서버로 전달한 데이터를 읽어 들이는 함수int recv(int socket, char FAR* addr, int len, int flags) 형식으로 사용함14) send to() 함수 : 지정된 주소로 데이터를 보내는 기능의 함수int sendto(int socket, const void *msg, int len, unsigned flags, const struct sockaddr * addr, int addrlen) 형식으로 사용함15) recvfrom() 함수 : sendto 함수를 이용해서 전달한 데이터를 읽어 들이는 함수int recvfrom(int socket, const void *msg, int len, unsigned flags, const struct sockaddr * addr, int addrlen) 형식으로 사용4. 소스 코드(C)1) TCP 서버(tcp_server)#include #include #include #include #include //access, read, write 등의 함수를 위한 헤더#include //기본적인 입출력을 위한 헤더#include //문자 변환 등을 위한 헤더#include //문자열을 위한 헤더#define MAXLINE 1024 //문자 배열 크기 지정용 상수int main(int argc, char **argv){int server_sockfd, client_sockfd; //소켓 통신을 위한 변수int state, client_len; //소켓 통신시 상태 및 길이 파악을 위한 변수pid_t pid;FILE *fp;struct sockaddr_un clientaddr, serveraddr; //소켓 통신을 위한 구조체char buf[MAXLINE]; //Client에서 보낸 메시지 저장할 배열char sendMsg[MAXLINE]; //Server가 보낼 메시지 저장할 배열//경로 설정이 제대로 되어있는지 인자를 확인 argc = 인자 개수if(argc != 2){printf("Usage : %s [socket file name]n", argv[0]);printf("example : %s /tmp/mysocketn", argv[0]);exit(0);}if(access(argv[1], F_OK) == 0){unlink(argv[1]);}client_len = sizeof(clientaddr); //길이 파악/*AF_UNIX 프로토콜 사용, SOCK_STREAM(TCP) 방식으로 데이터 전송, 0은 운영체제가 자동으로 소켓 타입에 맞게 설정하겠다는 뜻*/if((server_sockfd = socket(AF_UNIX, SOCK_STREAM, 0))
    공학/기술| 2020.12.06| 11페이지| 1,500원| 조회(417)
    미리보기
  • 판매자 표지 C# 박싱 언박싱 개념정리 레포트
    C# 박싱 언박싱 개념정리 레포트 평가A+최고예요
    고급객체지향(C#)값 형식, 참조 형식, 스택, 힙, 가비지 컬렉터, CLR의 메모리 관리스택 메모리/힙 메모리그림 1-1스택 : 후입선출(LastInFirstOut)의 데이터구조로 스택 메모리는 해당 코드 블록(실행)이 끝나면 메모리에서 제거된다. 즉, 컴파일러에 의해 자동 할당 및 해제되는 메모리 영역이다.그림 1-2힙 : 해당 코드 블록이 끝나도 스택과는 다르게 여전히 데이터를 가지고 있다. 원시 자료형이 아닌 보다 큰 크기의 데이터를 담고자 할당하는 메모리 공간을 뜻하기도 한다. 쓸모 없는 데이터가 되었을 경우 CLR의 Garbage Collector가 메모리에서 제거한다.값 형식/참조 형식C#의 자료형은 값형식(Value Type)과 참조 형식(Reference Type)이 있다. 값 형식은 크게 사용자 정의 자료형(enum, struct 등)과 기본 제공 자료형(int,char 등)으로 구분된다. 기본적으로 null값이 들어갈 수 없고 각 자료형마다 Default 값은 다르다(int =0, bool = false 등). 예외적으로 nullable 타입만 null을 가질 수 있다. 보통 스택 영역에 저장되며 아래 그림을 보면 기본 값형식 자료형인 int는 스택 메모리에 저장된 것을 알 수 있다. 코드 블록(실행)이 끝나면 메모리에서 삭제된다.위 그림과 같이(배열) 참조 형식은 자료 값이 직접 저장되는 것이 아닌, 저장된 메모리에 대한 참조 값이 저장되는 구조이다. 참조 형식도 크게 사용자 정의 자료형(object, string 등)과 기본 제공 자료형(interface, delegate 등)으로 나뉜다. 보통은 힙 영역을 사용하며 정확히는 힙과 스택을 모두 이용한다고 할 수 있다.힙 영역에는 데이터를, 스택 영역에는 힙 메모리의 주소를 저장하기 때문이다. 더 이상 사용하지 않을 경우 Garbage Collector가 자동으로 메모리를 반환한다.CLR 메모리 관리 기능과 가비지 컬렉터(쓰레기 수집기)그림 1-4그림 1-5프로그래머가 할당해 놓은 메모리에 더 이상 접근이 없으면 자동으로 메모리를 반환하는 기능을 말한다. 위 그림에서 B와 D를 제거한 것처럼 실제 메모리에서 제거함과 동시에 빈칸을 알아서 메워 메모리 단편화가 일어나지 않도록 하는 기능도 있다. C#에서는 CLR이 자동 메모리 관리 기능을 제공하는데 이 기능의 중심이 바로 앞서 설명한 ‘Garbage Collector’이다. 가비지 컬렉터가 지우지 못하는 메모리도 존재하는데 그것이 unsafe 키워드를 사용한 비관리형 코드이다.박싱 언박싱C# 에서는 박싱과 언박싱이라는 기능이 있다. 사용자의 편의성을 위한 기능이다. 쉽게 설명하자면 박싱은 값 형식을 참조 형식으로 바꾸는 것이다. 스택에 있는 데이터가 힙으로 복사되는 것이며 묵시적으로도, 명시적으로도 사용할 수 있다. 반면 언박싱은 참조 형식을 값 형식으로 바꾸는 기능이다. 힙에 있는 데이터가 스택으로 복사된다. 언박싱은 명시적으로만 사용할 수 있으며 오직 박싱했던 객체에 한해서만 사용 가능하다. 즉, 아무 데이터에나 언박싱 기능을 사용할 수 있는 것이 아니라는 뜻이다.예를 들어 박싱과 언박싱에 대해 설명해보겠다.Object a = 20;그림 1-6Object로 선언된 a라는 변수에 20을 저장했다. a의 주소는 스택에 저장되며 데이터는 힙에 저장되어 있다. Object 형식(참조 형식)에 값 형식의 데이터를 할당한 이것을 ‘박싱’이라고 부른다.그림 1-7반대로 힙에 있던 값 형식 데이터를 값 형식 객체에 다시 할당해야 한다면,Int b =(int)a 와 같이 명시적으로 ‘언박싱’을 해준다. a변수가 참조하고 있는 메모리로부터 값을 복사하여 b라는 변수에 저장하는 과정이다. 이 과정을 ‘언박싱’이라고 한다.이 박싱, 언박싱에는 상당한 계산 과정이 필요하다. 데이터가 많아질수록 계산 과정이 많아져 비효율적이며 형식에 대한 불안정성도 크게 증가하게 된다. 사용자의 입장에서는 편리할 수 있지만, 작동에서는 비효율적인 방법이라고 할 수 있다.
    공학/기술| 2020.03.05| 5페이지| 1,000원| 조회(189)
    미리보기
  • 판매자 표지 알고리즘(분할정복법, 동적계획법, 탐욕법) 레포트
    알고리즘(분할정복법, 동적계획법, 탐욕법) 레포트 평가A+최고예요
    알고리즘분할정복법, 동적계획법, 탐욕법1. 분할정복법(Divide and Conquer)분할정복법은 주어진 문제를 작은 사례로 나누고(Divide) 각각의 작은 문제들을 해결하여 정복(Conquer)하는 방법이다. 분할정복법은 문제의 사례를 2개 이상의 더 작은 사례로 나눈다. 이 작은 사례는 주로 원래 문제에서 따온다. 나눈 작은 사례의 해답을 바로 얻을 수 있으면 해를 구하고 아니면 더 작은 사례로 나눈다. 해를 구할 수 있을 만큼 충분히 더 작은 사례로 나누어 해결하는 방법이다.분할정복법은 하향식(top-down) 접근 방법으로 최상위 사례의 해답은 아래로 내려가면서 작은 사례에 대한 해답을 구함으로써 구한다.- 분할정복법의 설계전략1. 문제 사례를 하나 이상의 작은 사례로 분할(Divide)한다.2. 작은 사례들을 각각 정복(Conquer)한다. 작은 사례가 충분히 작지 않은 이상 재 귀를 사용한다.3. 필요하다면, 작은 사례에 대한 해답을 통합(Combine)하여 원래 사례의 해답을 구 한다.분할정복법이 쓰이는 예는 이분검색, 합병정렬, 퀵정렬, 최대값 찾기, 임계값의 결정, 쉬트라센 행렬곱셈 알고리즘 등이 있다.- 분할정복법의 장단점장점: 문제를 나눔으로써 어려운 문제를 해결할 수 있다는 아주 중요한 장점이 있다. 그리고 이 방식이 그대로 사용되는 효율적인 알고리즘들도 여럿 있으며, 문제를 나누어 해결한다는 특징상 병렬적으로 문제를 해결하는 데 큰 강점이 있다.단점: 함수를 재귀적으로 호출한다는 점에서 함수 호출로 인한 오버헤드가 발생하며, 스택에 다양한 데이터를 보관하고 있어야 하므로 스택 오버플로우가 발생하거나 과도한 메모리 사용을 하게 되는 단점분할정복법의 예를 들자면 위 그림1과 같다. 한 개의 큰 테이블을 작은 단위로 계속 분할(division)하고 분해한 후에는 다시 정복(Conquer)하는 것이다. 쉽게 말하면 분해하고 결합하면서 정리하는 방식이다. 이 방식으로 정렬을 하게 되는 예시를 들자면 아래 그림 2와 같다.이와 같이 진행되는 방식이 분할정복법이다.2. 동적계획법동적계획법은 어떠한 문제에 대한 최적해를 얻고자 할 때, 해당 문제에 대해 부분적으로 분할하여 작은 문제를 먼저 해결한 뒤, 각 부분에 대해 최적의 해답을 차례로 구해 가는 알고리즘이다. 말이 조금 어려운데, 전체 큰 해를 구하기 위해서 작은 해를 구한 뒤에 그걸 재활용해서 여기저기서 이용하면서 답을 찾아가는 기법이다.동적계획법(Dynamic Programming)은 줄여서 DP라고도 부른다. 일반적으로 이름이 붙어진 알고리즘들이 구체적으로 문제를 해결하는 길을 제공하는 알고리즘이라면, 동적계획법은 구체적인 어떤 알고리즘을 지칭한다기보다는 문제를 해결하는 일종의 여러 방법의 집합과도 같다. 문제를 해결하는 하나의 철학인 것이다. 한 가지 큰 문제를 풀기 위해서 그 문제를 작은 문제들의 연장으로 생각하고, 구한 작은 문제의 해를 다음 연장된 작은 문제를 푸는 것에 이용하는 방식의 알고리즘 패러다임을 통틀어 동적계획법(Dynamic Programming) 이라고 하게 된다.예를 들어보자. 아래는 동적계획법의 대표적인 네 개의 알고리즘 중 하나인Assembly line scheduling이다.공장에서 두 개의 조립 라인이 있고, 각각의 라인에 n 개의 공정이 있다고 생각해 보자. 각 공정에서 걸리는 시간이 Si,j라고 하고 같은 라인을 타고 갈 경우는 따로 소요되는 시간이 없다. 하지만, 공정 수행 중 다른 라인으로 이동해서 작업을 이어가는 게 시간상으로 유리하다고 판단이 되면 라인을 이동할 수 있다. 이때 소요되는 시간이 ti,j 인 것이다.
    공학/기술| 2020.03.05| 4페이지| 1,000원| 조회(255)
    미리보기
  • 판매자 표지 알고리즘별 효율성 실습 정리 레포트
    알고리즘별 효율성 실습 정리 레포트
    최종보고서프로젝트 과제명 : 정렬알고리즘 효율성 분석교과목명담당교수팀 명팀 원제 1 장 프로젝트 주요 내용1) 세부 내용 1- 삽입 정렬, 퀵 정렬, 선택 정렬, 셸 정렬, 히프 정렬, 이진 검색, 순차 검색 7개의 프로그램을 결합하여 어느 프로그램이든 사용할 수 있습니다. 각 프로그램은 모두 무한 반복할 수 있으며 원하면 언제든지 종료하거나 메인화면으로 돌아갈 수 있습니다. 선택지의 없는 번호를 입력 시 오류메시지를 출력하며 다시 선택지로 돌아가게 됩니다.2) 세부 내용 2- 정렬은 각각 20번을 반복하여 비교횟수, 자리이동 횟수, 걸리는 시간의 평균을 출력하며 이론적으로 변수 1만개 일 때 나와야하는 근사치에 대한 공식도 함께 출력합니다. 그럼으로써 직관적으로 프로그램의 각 횟수들이 공식대로 나오는지 확인할 수 있도록 되어있습니다. 모든 정렬은 오름차순, 내림차순 실험을 통해 카운팅이 이상 없는지 확인된 상태입니다. 모든 정렬의 비교횟수, 걸리는 시간 등으로 효율 순위를 출력하는 프로그램도 결합되어 있습니다.3) 세부 내용 3- 이진검색과 순차검색은 각 1000번을 반복하여 비교횟수의 평균과 결과만을 출력합니다. 순차검색의 경우 찾으려는 난수의 범위 1~100만과 배열 크기 1만개(범위1~100만)이라는 상황이기 때문에 탐색에 성공하는 경우는 매우 적고 이에 따라 비교횟수도 최대에 가깝게 나옵니다.제 2 장 과제 결과1. 삽입, 선택, 퀵, 셸, 히프 정렬의 비교 횟수와 자리이동 횟수 출력- 모든 정렬은 내림차순, 오름차순 실험으로 카운팅이 정확한지 확인된 상태- 모든 정렬은 20회 반복해서 산출된 평균값을 출력- 비교 횟수, 자리 이동 횟수, 걸리는 시간에 의거한 효율 순위 출력(100회 반복 기준)< 정렬별 공식>< 정렬 결과(난수)>< 정렬 결과(내림차순) >< 정렬 결과(오름차순) >< 효율 순위(복잡도,시간) >2. 순차 검색, 이진 검색 평균 비교 횟수 출력- 배열 1만개(범위 1~ 1000000)에서 난수(범위 1 ~ 1000000)을 찾음.- 모든 검색은 1000회 반복되고 발견의 유무만 출력- 공식에 의거한 값이 나오는지 확인된 상태< 프로그램 구동 화면 >3. 각 정렬별 최악의 환경1. 삽입정렬 : 내림차순 정렬이 되어있는 상황일 때.
    공학/기술| 2020.03.05| 5페이지| 1,000원| 조회(143)
    미리보기
전체보기
받은후기 4
4개 리뷰 평점
  • A+최고예요
    4
  • A좋아요
    0
  • B괜찮아요
    0
  • C아쉬워요
    0
  • D별로예요
    0
전체보기
해캠 AI 챗봇과 대화하기
챗봇으로 간편하게 상담해보세요.
2026년 05월 22일 금요일
AI 챗봇
안녕하세요. 해피캠퍼스 AI 챗봇입니다. 무엇이 궁금하신가요?
7:06 오후
문서 초안을 생성해주는 EasyAI
안녕하세요 해피캠퍼스의 20년의 운영 노하우를 이용하여 당신만의 초안을 만들어주는 EasyAI 입니다.
저는 아래와 같이 작업을 도와드립니다.
- 주제만 입력하면 AI가 방대한 정보를 재가공하여, 최적의 목차와 내용을 자동으로 만들어 드립니다.
- 장문의 콘텐츠를 쉽고 빠르게 작성해 드립니다.
- 스토어에서 무료 이용권를 계정별로 1회 발급 받을 수 있습니다. 지금 바로 체험해 보세요!
이런 주제들을 입력해 보세요.
- 유아에게 적합한 문학작품의 기준과 특성
- 한국인의 가치관 중에서 정신적 가치관을 이루는 것들을 문화적 문법으로 정리하고, 현대한국사회에서 일어나는 사건과 사고를 비교하여 자신의 의견으로 기술하세요
- 작별인사 독후감