[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 |