본문 바로가기

개발일지

20240108_TIL 11일차

[1] TIL

  1. 알고리즘 세션 4일차 by 강창민 튜터님

    (1) Stack

      1) Last in First Out

        ex) 모바일에서 뒤로 가기, undo/redo

      2) method

       a. push : stack에 원소 삽입

       b. pop : top에서 원소를 가져오는 것, stack에서 빼는 것

       c. peak : top 데이터를 보는 것 

    (2) Queue

       1) First in Fist Out, 선입선출

         ex) 서버 접속 대기열 큐,  인쇄 대기열 큐 - 공용 프린터

       2) method

        a. Peak 

        b. enqueue

        c. dequeue

       3) 코드

        const deleteHead = this.head;

         this.head = this.head.next;

         return deleHead.value;

    (3) 정렬

       1) 버블정렬

        a. 두 개씩 비교

        b. 한 cycle이 끝나면 제일 큰 수가 맨 뒤로 가는 것은 확정

        c.  물방울이 수면 위로 올라오듯이 정렬되어서 버블 소트

        d.  버블소트 구현하기

          arr = [];

          for ( let i = 0; i < arr.length ; i++) {

            if ( arr[i] > arr[i+1] ) {

            swap ( arr[i], arr[i+1])}; 

           });

          return arr;

       2) selection sort

        a. 코드

         function selection_sort(){

          let arr.length = n;

          for( i = 0; i < n; i++){ 

            for( j= i+1; j < n; j++){

              if( arr [j] > arr [I]){

               arr [j] = arr[i];

               arr [i] = minarr;

             }

           }

          }

         return arr;

         }

        b. 최솟값

         //  마지막 숫자는 자동으로 정렬되기 때문에 (숫자 개수-1) 만큼 반복한다.

          for(i=0; i<n-1; i++){

           least = i;

         // 최솟값을 탐색한다.

          for(j=i+1; j<n; j++){

          if(list[j]<list[least])

           {least = j;

           }

          }

         // 최솟값이 자기 자신이면 자료 이동을 하지 않는다.

           if(i != least){

           swap (list[i], list[least], temp);

           }

          }

       

       

'개발일지' 카테고리의 다른 글

20240110_TIL 13일차  (0) 2024.01.11
20240109_TIL 12일차  (2) 2024.01.10
20240105_TIL 10일차  (2) 2024.01.06
20240104_TIL 9일차  (2) 2024.01.05
20240103_TIL 8일차  (4) 2024.01.03