inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

인프런 워밍업 클럽 스터디 3기 - CS 전공지식 (운영체제, 자료구조, 알고리즘) 회고

구탱
0

알고리즘 2주차 회고

이번주 배운 알고리즘 개념은 재귀와 정렬이다.

재귀는 어떠한 것을 정의할 때 자신의 참조하는 것이다.

아래는 재귀를 위해 실습한 코드 일부...

function sumArray(arr){
    if(arr.length == 1) return arr[0];
    return sumArray(arr.slice(0, -1)) + arr[arr.length -1];
}

let arr = [1,2,3,4,5];
let sum = sumArray(arr);
console.log(sum);

재귀에서는 하노이의 탑을 이용한 방식이 있는데, 값을 이동시킬 때 사용할 수 있는 개념이라고 생각했다.

예를 들면 int a=5이고 int b=4일때, a와 b의 값을 서로 바꾸는 경우 temp라는 값을 두고 바꾸는 것도 하노이의 탑과 유사할 것이다.

버블정렬은 앞의 숫자와 옆의 숫자를 비교해서 자리를 바꾸는 것인데, 반복할 수록 비교할 횟수가 줄어들긴 하지만 성능이 O(n제곱)이라 좋지 않다.

선택정렬은 배열의 첫번째부터 마지막까지 비교를 하면서 정렬하는데 버블정렬과 동일하게 구현은 쉽지만 성능이 O(n제곱)으로 좋지않다.


운영체제 2주차 회고

스케줄링 개념을 집중해서 익혔다. 그리고 데드락에 대한 수업을 듣고 교착상태 해결방법에 대해 배울 수 있어서 유익했다.

하지만 실제 상황에서 교착상태 문제 해결을 위한 능력을 갖추려면 더 공부가 필요...ㅜㅜ

 

 

 

 

답변 0