728x90
반응형

전공/자료구조 23

[자료구조] 이원 탐색, 순환 이원 탐색

이원 탐색 이미 정렬된 배열 a[0] ... a[n-1]에서 x=a[j]인 j를 반환 - left, right: 탐색하고자 하는 리스트의 왼쪽, 오른쪽 끝 - 초기값 left = 0, right = n-1 - 리스트의 중간 위치 middle = (left/right)/2 - a[middle]과 x 비교 1) x right = middle-1 2) x = a[middle] -> middle 반환 3) x > a[middle] -> left = middle+1 int BinarySearch(int *a, const int x, const int n) { // 정렬된 배열 a[left], ..., a[right]에서 x 탐색 int left = 0, right = n - 1; whi..

전공/자료구조 2023.04.30

[자료구조] 선택정렬

선택정렬 n ≥ 1개의 서로 다른 정수의 집합을 정렬 정렬되지 않은 정수들 중에서 가장 작은 값을 찾아서 정렬된 리스트 다음 자리에 배치 void SelectionSort(int *a, const int n) { //n개의 정수 a[0]부터 a[n-1]까지 오름차순으로 정렬 for (int i = 0; i < n; i++) { int j = i; //a[i]와 a[n-1] 사이에 가장 작은 정수 탐색 for (int k = i + 1; k < n; k++) if (a[k] < a[j]) j = k; swap(a[i], a[j]); //swap함수는 두 수의 위치를 교환 } } 시간복잡도 - O(n) //n은 배열 a의 크기

전공/자료구조 2023.04.30

[자료구조] 자료구조 개념, 이론

시스템 생명 주기(System Life Cycle) 요구사항 시스템의 요구 사항을 파악, 분석 시스템이 무엇을 해야 하는지, 어떤 기능이 있어야 하는지, 사용자의 기대는 무엇인지 결정 분석 시스템의 동작, 기능 및 특성을 정의 시스템의 다양한 구성 요소, 시스템의 관계 및 상호작용 방식을 식별 설계 다양한 구성 요소, 구성 요소 간의 관계 및 인터페이스를 포함하여 시스템의 아키텍처 설계 시스템 구현에 대한 세부 계획 개발 정제와 코딩 설계 정교화, 소프트웨어 코드화 디자인을 컴퓨터에서 실행할 수 있는 코드로 변환 코드 작성, 테스트 및 디버깅 포함 검증 시스템을 테스트하여 요구사항을 충족하고 오류가 없는지 확인 사용자의 기대를 충족하고 의도한 대로 작동하는지 확인 객체 지향 설계 구조적 프로그래밍 설계와..

전공/자료구조 2023.04.20
728x90
반응형